<?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; SpringSource</title> <atom:link href="http://blog.xebia.fr/tag/springsource/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 Xebia</title><link>http://blog.xebia.fr/2011/08/17/revue-de-presse-xebia-224/</link> <comments>http://blog.xebia.fr/2011/08/17/revue-de-presse-xebia-224/#comments</comments> <pubDate>Wed, 17 Aug 2011 12:48:32 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[AMQP]]></category> <category><![CDATA[apache commons]]></category> <category><![CDATA[apache commons lang]]></category> <category><![CDATA[cloud]]></category> <category><![CDATA[CloudForm]]></category> <category><![CDATA[CloudFoundry]]></category> <category><![CDATA[OpenShift]]></category> <category><![CDATA[OpenStack]]></category> <category><![CDATA[rabbitmq]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[VMWare]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=8306</guid> <description><![CDATA[La revue de presse de l’actualité Java/JEE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Cloud: Jboss AS7 se déploie sur OpenShift, OpenStack se dévoile dans un guide RabbitMQ + Cloud Foundry: Cloud Messaging that just works Le coin de la technique Apache Commons Lang 3 Actualité éditeurs / SSII Cloud: Jboss AS7 se déploie [...]]]></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/08/17/revue-de-presse-xebia-224/#CloudJbossASsedploiesurOpenShi">Cloud: Jboss AS7 se déploie sur OpenShift, OpenStack se dévoile dans un guide</a></li><li><a
href="http://blog.xebia.fr/2011/08/17/revue-de-presse-xebia-224/#RabbiMQCloudFoundryCloudMessag">RabbitMQ + Cloud Foundry: Cloud Messaging that just works</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/08/17/revue-de-presse-xebia-224/#ApacheCommonsLang">Apache Commons Lang 3</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="CloudJbossASsedploiesurOpenShi"></a>Cloud: Jboss AS7 se déploie sur OpenShift, OpenStack se dévoile dans un guide</h4><p>Le Cloud, on en entend beaucoup parler mais peu le voient vraiment arriver dans leur travail de tous les jours. Pourtant, les choses avancent vite.</p><p><strong>OpenShift</strong> : du coté de Redhat/JBoss tout d’abord, qui <a
title="a annoncé" href="http://in.relation.to/Bloggers/JavaEE6OnOpenShift">a annoncé</a> cette semaine la disponibilité de JBoss AS 7 sur leur Cloud. Tournant sur <a
title="OpenShift" href="https://openshift.redhat.com/app/">OpenShift</a> (le <em>Paas</em> à la RedHat) lui même tournant sur <a
title="CloudForm" href="http://www.redhat.com/solutions/cloud/cloudforms/">CloudForm</a> (Iaas), l&#8217;offre est ainsi la 1ere offre compatible JEE6 <em>out of the box</em>. Il est intéressant de noter qu&#8217;elle permet apparemment le déploiement d&#8217;un nombre illimité d&#8217;applications sur AS 7, et ce gratuitement, en utilisant l&#8217;offre OpenShift Express. A nous la puissance du standard web profile (voire plus) ! Et pour simplifier l&#8217;approche, l&#8217;annonce pointe d&#8217;ailleurs vers des vidéos montrant la facilité du processus de déploiement d&#8217;applications JEE6: on a presque l&#8217;impression qu&#8217;un simple <em>git push</em> suffit ! Une <a
title="autre vido" href="http://vimeo.com/27502795">autre vidéo</a> montre comment déployer la &laquo;&nbsp;Spring Pet Clinic&nbsp;&raquo;.</p><p><strong>OpenStack</strong>: Mais comme toute nouvelle techno émergente, il n&#8217;y a pas un seul standard. Ubuntu, Intel, Dell et de nombreuses autres entreprises, de leur coté, développent l&#8217;<a
title="OpenStack" href="http://www.openstack.org/">OpenStack</a> qui se définit comme un Operating System pour le Cloud, lorgnant donc du coté de l&#8217;<em>Iaas</em>. Si le projet existe depuis quelques temps déjà (il avait été lancé par Rackspace et la NASA il y a un an), la sortie du guide &laquo;&nbsp;Openstack Beginner Guide for Ubuntu Natty&nbsp;&raquo; est l&#8217;occasion d&#8217;en parler. Annoncé <a
title="ici" href="http://cloud.ubuntu.com/2011/08/ubuntu-natty-gets-openstack-book/">ici</a> et disponible en PDF, le guide vous permettra d&#8217;avoir une première approche de la stack en vous lançant dans les configurations réseau, déploiements d&#8217;images et autres barbarismes en ligne de commande. Comment ça, ça n&#8217;est pas du Java et ne vous concerne pas ? Vos projets futurs risquent pourtant fort de tourner sur ces infrastructures. Attention, la lecture de &laquo;&nbsp;OpenStack Overview&nbsp;&raquo; (pdf <a
title="disponible ici" href="http://www.openstack.org/projects/">disponible ici</a>) est conseillée pour avoir une petite idée avant de se lancer dans la lecture du guide complet. Vous vous y familiariserez avec et découvrirez les 3 composants de l&#8217;ensemble:</p><ul><li><strong>OpenStack compute</strong> qui permet de provisionner des ressources en mettant à disposition un réseau de machines virtuelles</li><li><strong>OpenStack Object</strong> Store qui permet le stockage de données de façon redondante et scalable</li><li><strong>OpenStack Glance</strong> qui est un catalogue d&#8217;images serveur</li></ul><p>Mais l’interopérabilité étant maintenant une donnée que les entreprises prennent en compte (à raison !), il y a fort à parier que toutes ces technologies se coupent et se recoupent allègrement. RedHat a d&#8217;ailleurs évoqué une version future de OpenShift tournant sur OpenStack.</p><h4><a
name="RabbiMQCloudFoundryCloudMessag"></a>RabbitMQ + Cloud Foundry: Cloud Messaging that just works</h4><p>Restons dans les nuages en faisant un petit tour du côté de Cloud Foundry, la solution de <em>Platform as a Service</em> de VMware (nous en parlions <a
title="ici" href="http://blog.xebia.fr/2011/04/13/lancement-du-projet-platform-as-a-service-cloud-foundry-de-spring-source/">ici</a>). Après l&#8217;intégration de MySQL, MongoDB et Redis, voici donc <a
title="l'arrivée de RabbitMQ" href="http://blog.cloudfoundry.com/post/8713844574/rabbitmq-cloud-foundry-cloud-messaging-that-just-works">l&#8217;arrivée de RabbitMQ</a> parmi les nouveaux services proposés par la plateforme qui fait sien le slogan de RabbitMQ: <em>Cloud Messaging that just works</em>. Rappelons que <a
title="RabbitMQ a t rachet" href="http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#RabbitMQrachetparSpringSource">RabbitMQ a été racheté</a> par SpringSource/VMware il y a un an et demi et cette nouvelle annonce valide finalement leur stratégie pour offrir une écosystème complet. En effet, comme rappelé dans l&#8217;annonce de Cloud Foundry, le messaging est une brique essentielle pour entre autre:</p><ul><li>la maintenabilité: minimisation de l&#8217;impact pour de nouvelles alertes, nouveaux rapports ou logs</li><li>la <em>scalabilité</em>: on peut déléguer par exemple des tâches à des <em>workers</em> particuliers</li><li>l&#8217;efficacité: les informations peuvent être poussées vers les différents composants, évitant de faire du <em>polling</em> ou de se synchroniser sur une base</li><li>la robustesse: les queues de messages permettent de temporiser si des instances ou des composants sont désactivés</li></ul><p>De plus RabbitMQ implémente le protocole <em>AMQP</em> (versions 0-8 et 0-9-1) qui, contrairement à JMS, a l&#8217;avantage de ne pas être enfermé au seul monde Java. C&#8217;est d&#8217;autant plus intéressant que cette plateforme supporte pour l&#8217;instant 3 langages: Java (avec aussi Scala et Groovy), Ruby/Rails et JavaScript (node.js). L&#8217;interopérabilité sur ces différents frameworks peut donc être facilitée par RabbitMQ.</p><p>Reste que Cloud Foundry est encore dans une phase <em>bêta</em>, la partie monitoring par exemple reste encore très perfectible comparée à son concurrent direct <em>Google App Engine</em>. Nous n&#8217;avons pas pu non plus tester les performances d&#8217;applications tournant sur cette plateforme.</p><p>Vous pouvez commencer dès maintenant grâce à ces tutoriels : <a
title="Spring 1" href="http://support.cloudfoundry.com/entries/20322602-getting-started-with-the-rabbitmq-service-from-a-spring-application">Spring 1</a>, <a
title="Spring 2" href="http://blog.springsource.com/2011/08/16/chatting-in-the-cloud-part-1/">Spring 2</a>, <a
title="exemple d'application sur github" href="https://github.com/rabbitmq/rabbitmq-cloudfoundry-samples/tree/master/spring">exemple d&#8217;application sur github</a> et <a
title="Spring AMQP" href="http://www.springsource.org/spring-amqp">Spring AMQP</a>.</p><p>A noter: AMQP est d&#8217;ailleurs le protocole de messaging utilisé sur OpenStack, mentionné dans l&#8217;entrée précédente, grâce à RabbitMQ et en Python (ce dernier n&#8217;est pas un langage supporté par Cloud Foundry),</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="ApacheCommonsLang"></a>Apache Commons Lang 3</h4><p>Les librairies d&#8217;Apache, <a
title="Apache Commons" href="http://commons.apache.org/">Apache Commons</a> se retrouvent dans de nombreux projets et permettent de s&#8217;appuyer sur du code qui marche et qui fait bien ce qu&#8217;on lui demande. Mais il est vrai que ces librairies ont perdu de leur superbe, n&#8217;étant pour la plupart pas &laquo;&nbsp;Java 5 compliant&nbsp;&raquo;. Qui a encore envie de caster ses objets alors que Google Guava, lui, utilise les generics ? Pour pallier en partie à ce problème, ce sont les <a
title="commonslang" href="http://commons.apache.org/lang/">commons-lang</a> qui ont récemment débarqué en V3, apportant dans de nombreuses méthodes le support de ces generics.<br
/> C&#8217;est sur Web Tambouille que l&#8217;on trouve <a
title="larticle le plus complet" href="http://www.web-tambouille.fr/2011/07/20/le-cru-2011-de-commons-lang-est-arrive-en-version-3-0-pour-java-5.html">l&#8217;article le plus complet</a> leur étant consacré. Il y détaille le contenu de divers packages:</p><ul><li>lang3.* : contient des utilitaires pour les String, Array, Object&#8230;</li><li>lang3.concurrent.* : quelques ajouts enrichissant java.util.concurrent.</li><li>lang3.builder.* : divers Builder, comme le EqualsBuilder() qui permet de comparer facilement des objets</li><li>lang3.reflect.* : des utilitaires pour améliorer votre code traitant de réflexion</li><li>lang3.mutable.* et lang3.tuple.* : vous avez toujours rêvé de pouvoir changer la valeur de vos entiers ou de pouvoir en retourner plusieurs en un seul appel de méthode ? Vous trouverez ici votre bonheur</li></ul><p>Attention tout de même: la compatibilité ascendante n&#8217;est pas assurée: il faudra au minimum recompiler car les anciens packages n&#8217;ont pas étés conservés.<br
/> Bref, cet article est à lire car on a souvent tendance à passer à coté de toutes les fonctionnalités offertes alors que cette librairie est (souvent) déjà dans nos projets. C&#8217;est dommage, non ?</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/08/17/revue-de-presse-xebia-224/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/07/26/revue-de-presse-xebia-221/</link> <comments>http://blog.xebia.fr/2011/07/26/revue-de-presse-xebia-221/#comments</comments> <pubDate>Tue, 26 Jul 2011 08:03:10 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Ceylon]]></category> <category><![CDATA[CI]]></category> <category><![CDATA[ClojureScript]]></category> <category><![CDATA[GAE]]></category> <category><![CDATA[Gemfire]]></category> <category><![CDATA[Groovy]]></category> <category><![CDATA[interview]]></category> <category><![CDATA[Java 7]]></category> <category><![CDATA[Jenkins]]></category> <category><![CDATA[Kotlin]]></category> <category><![CDATA[multithreading]]></category> <category><![CDATA[Spring Data]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=8253</guid> <description><![CDATA[La revue de presse de l’actualité Java/JEE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Jenkins : The Definitive Guide Java, Kotlin, Ceylon&#8230; Que d&#8217;îles ! Le coin de la technique Springsource: des nouveautés en pagaille Java en entretien technique Fork/Join: le multithread facile en Java 7 Sortie de Groovy 1.8.1 et 1.9 beta 1 [...]]]></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/07/26/revue-de-presse-xebia-221/#JenkinsTheDefinitiveGuide">Jenkins : The Definitive Guide</a></li><li><a
href="http://blog.xebia.fr/2011/07/26/revue-de-presse-xebia-221/#JavaKotlinCeylonQuedlesnbsp">Java, Kotlin, Ceylon&#8230; Que d&#8217;îles !</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/07/26/revue-de-presse-xebia-221/#Springsourcedesnouveautsenpaga">Springsource: des nouveautés en pagaille</a></li><li><a
href="http://blog.xebia.fr/2011/07/26/revue-de-presse-xebia-221/#Javaenentretientechnique">Java en entretien technique</a></li><li><a
href="http://blog.xebia.fr/2011/07/26/revue-de-presse-xebia-221/#ForkJoinlemultithreadfacileenJ">Fork/Join: le multithread facile en Java 7</a></li><li><a
href="http://blog.xebia.fr/2011/07/26/revue-de-presse-xebia-221/#SortiedeGroovyetbeta">Sortie de Groovy 1.8.1 et 1.9 beta 1</a></li><li><a
href="http://blog.xebia.fr/2011/07/26/revue-de-presse-xebia-221/#SortiedeGoogleAppEngineSDK">Sortie de Google App Engine SDK 1.5.2</a></li><li><a
href="http://blog.xebia.fr/2011/07/26/revue-de-presse-xebia-221/#Scalaversuneversionclassiqueet">Scala : vers une version &laquo;&nbsp;classique&nbsp;&raquo; 2.9.1 et une version .Net</a></li><li><a
href="http://blog.xebia.fr/2011/07/26/revue-de-presse-xebia-221/#ClojureScript">ClojureScript</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="JenkinsTheDefinitiveGuide"></a>Jenkins : The Definitive Guide</h4><p>Wakaleo Consulting sort un ebook gratuitement téléchargeable : <a
title="Jenkins The Definitive Guide" href="http://www.wakaleo.com/download-jenkins-the-definitive-guide">Jenkins The Definitive Guide</a>. Comme son nom l&#8217;indique c&#8217;est un guide très complet sur le serveur d&#8217;intégration continue, ex-Hudson. Le guide couvre :</p><ul><li>installation et configuration</li><li>sécurisation</li><li>notifications email, IRC, Jabber, SMS et autres</li><li>structuration des jobs</li><li>promotions de bonnes pratiques de développement, via Checkstyle, PMD, FindBugs et autres plugins</li></ul><p>Il est bien écrit (en anglais) et mérite d&#8217;y <a
title="jeter un oeil" href="http://www.wakaleo.com/download-jenkins-the-definitive-guide">jeter un œil</a>, que ce soit pour apprendre, approfondir ou réviser.</p><h4><a
name="JavaKotlinCeylonQuedlesnbsp"></a>Java, Kotlin, Ceylon&#8230; Que d&#8217;îles !</h4><p>Ces derniers temps furent très mouvementés dans le monde des langages alternatifs de la JVM.</p><p>On sait maintenant que Kotlin n&#8217;est plus seulement connu pour être une <a
title="le perdue en Russie" href="http://en.wikipedia.org/wiki/Kotlin_Island">île perdue en Russie</a>. C’est aussi un nouveau langage proposé par l&#8217;équipe de JetBrains censé tourner sur JVM (et encore un de plus, diront certains). Dans les particularités remarquables du langage, nous trouvons :</p><ul><li>les closures et les fonctions d’ordre supérieur,</li></ul><pre class="brush: java; title: ; notranslate">
fun  filter(Iterable items, predicate : fun(T) : boolean) : Iterable { … }
filteredPersons = filter(persons, { it.getAge() &gt;= 18 });
</pre><ul><li>les fonctions d’extension qui permettent d’ajouter de nouvelles méthodes à des classes,</li><li>le pattern matching,</li></ul><pre class="brush: java; title: ; notranslate">
when (x) {
  is Int =&gt; print(x)
  is List =&gt; print(x.sum())
  !is Number =&gt; print(&quot;Not even a number&quot;)
  else =&gt; print(&quot;can't do anything&quot;)
}
</pre><ul><li>La notion de tuple,</li><li>La couche objet habituelle avec des classes finale par défaut,</li><li>La réification des generics permettant de conserver les informations sur le type des arguments d’un type générique au runtime.</li></ul><p>Ce langage, vous ne pouvez pas encore l’utiliser car il n&#8217;est actuellement disponible qu’à l’état de <a
title="spcification" href="http://confluence.jetbrains.net/display/Kotlin/Welcome">spécification</a>. Un peu comme Ceylon, en fait, qui est aussi une île. Et d’ailleurs, comme Ceylon, il se veut être une simplification de Scala. Bien sûr, ce nouveau langage à créé le buzz auprès de la communauté des développeurs Java et Scala.</p><p>D’ailleurs Gavin King en a profité pour nous donner un <a
title="rapport davancement sur Ceylon" href="http://relation.to/Bloggers/CeylonProgressReport">rapport d’avancement sur Ceylon</a>. Et bien&#8230; Il avance dans le travail de son compilateur. Mais il semble qu’après l’annonce de Kotlin, Gavin s’est malheureusement attiré à lui le buzz et la guerre pseudo-fratricide qui l’accompagne. La situation lui ayant échappé, Gavin a décidé de fermer les commentaires de son post.</p><p>Tous ces nouveaux langages ont donné envie à Stephen Colebourne d’écrire un essai (au sens littéraire du terme) sur deux notations utilisées dans la déclaration de type : la déclaration de type classique (comme en Java ou C) et la déclaration de type inversée (comme en Scala ou en Pascal). Stephen réalise sa démonstration au travers de différents langages : Java, Java avec les lambdas expressions en utilisant la <a
href="http://cr.openjdk.java.net/~mr/lambda/straw-man/">proposition strawman</a>, Java avec les lambdas expressions en utilisant la proposition BGGA, Ceylon, Fantom, Gosu, Kotlin et Scala. Nous vous laissons lire <a
title="larticle" href="http://www.jroller.com/scolebourne/entry/reversed_type_declarations">l’article</a> et en tirer vos propre conclusions.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Springsourcedesnouveautsenpaga"></a>Springsource: des nouveautés en pagaille</h4><p>SpringSource nous fait le plein de nouveautés avec plusieurs sorties:</p><p><strong>Spring Data JPA 1.0</strong></p><p>Le projet Spring Data vise à faciliter les accès aux bases de données et à gagner encore et toujours en productivité. Au travers de cette API, il est possible d&#8217;utiliser aussi bien des bases NoSQL que des bases relationnelles.</p><p>L&#8217;API est pour l&#8217;instant relativement succincte. Il est possible de faire du CRUD et de l&#8217;interrogation sans écrire une seule requête grâce à un système de convention de nommage des méthodes.</p><p>L&#8217;interface de base se nomme <a
title="Repository" href="http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/#repositories.core-concepts"><em>Repository</em></a>. Si votre interface UserRepository étend Repository et définit une méthode findByName(String name), vous pouvez directement l&#8217;utiliser pour rechercher vos éléments. Le framework, en fonction de l&#8217;environnement que vous avez, construira une requête sur l&#8217;entité User en cherchant celle qui a le nom donné en paramètre. Vous définissez le contrat, le framework s&#8217;occupe de l&#8217;implémentation.</p><p>Avec Spring Data JPA 1.0 qui arrive en release finale, il est possible d&#8217;utiliser JPA 2.0 au travers de l&#8217;abstraction fournie par Spring Data. En plus du CRUD, l&#8217;API Criteria de JPA a été portée avec son lot de prédicats. Il est aussi possible d&#8217;utiliser des Queries en JPQL et de les associer aux méthodes du Repository pour des implémentations personnalisées de certaines méthodes. Cette première version reste verbeuse, mais Spring assure vouloir réduire le code technique avec la maturité à venir de son nouveau produit.</p><p><strong>Spring Data 1.1.0.M2</strong></p><p>Spring Data Graph <a
title="1.1.0.M2" href="http://www.springsource.org/spring-data/neo4j">1.1.0.M2</a> en version minestrone ajoute de nouvelles fonctionnalités sur la gestion de la base de données orientée graphe <a
title="Neo4J" href="http://neo4j.org/">Neo4J</a>. En plus de la correction de quelques bugs, l&#8217;API supporte maintenant la version 1.4. Tant que nous y sommes, si vous choisissez d&#8217;étudier les bases de données graphe, essayez <a
title="Gephi" href="http://gephi.org/">Gephi</a> pour la visualisation et l&#8217;exploration des données: c&#8217;est visuellement intéressant !</p><p><strong>Spring Gemfire 1.1.0.M1</strong></p><p><a
title="Spring Gemfire" href="http://www.springsource.org/spring-gemfire">Spring Gemfire</a> est arrivé en version 1.1.0.M1 la semaine dernière.</p><p>Les applications propulsées par Spring peuvent déjà se préparer à utiliser la version 6.6 du système de gestion de données réparti de <a
title="VMWare" href="http://www.vmware.com/products/vfabric-gemfire/overview.html">VMWare</a>. Il permet aussi d&#8217;utiliser l&#8217;abstraction de cache apportée par <a
title="Spring 31" href="http://blog.springsource.com/2011/02/23/spring-3-1-m1-caching/">Spring 3.1</a>. La connexion aux Cache Server de GemFire est rendue disponible (pour la réplication de session HTTP par exemple). Enfin, pour la création de requête, dites au revoir à la génération par chaînes de caractères (avec inclusion des paramètres), et bonjour au templating avec l&#8217;utilisation des paramètres variables.</p><h4><a
name="Javaenentretientechnique"></a>Java en entretien technique</h4><p>Ah les questions techniques lors d&#8217;un recrutement&#8230; Quel développeur n&#8217;a jamais eu peur de faire face à ces questions alors même qu&#8217;il estime bien connaître les méandres de la spec Java. Mais les points flous et d&#8217;incompréhension peuvent être nombreux !<br
/> Dans un <a
title="récent post" href="http://java.dzone.com/articles/incorrect-core-java-interview#">récent post</a>, Peter Lawrey revient sur certains de ces points et nous livre son analyse. Nous ne reparlerons pas (zut, trop tard !) de l&#8217;éternel &laquo;&nbsp;pass by value VS pass by reference&nbsp;&raquo; qui génère toujours <a
title="beaucoup de commentaires" href="http://blog.xebia.fr/2011/01/13/legende-urbaine-en-java-les-objets-sont-passes-par-reference/">beaucoup de commentaires</a>, mais nous pourrons citer par exemple:</p><ul><li>Les modificateurs transient et volatile</li><li>Overriding, overloading: lequel fait quoi ?</li><li>que retourne boolean.class.getSuperclass() ?</li><li>Rappelez moi la définition d&#8217;un Java Bean ?</li></ul><p>Ainsi que quelques autres questions. Rien de bien nouveau mais une petite piqûre de rappel fait toujours du bien, même aux plus calés.</p><p>Tant que nous sommes sur les questions lors d&#8217;une entretien, n&#8217;oubliez pas que si vous avez à réaliser un bout de code mais pas vraiment l&#8217;envie de le faire, il est toujours possible de s&#8217;en sortir en utilisant <a
title="la technique suivante" href="http://exold.com/article/stupid-interview-questions">la technique suivante</a>. Dans celle-ci, l&#8217;auteur pousse l’exagération jusqu&#8217;à la mauvaise fois en demandant des spécification extrêmes sur ce qui lui est demandé de réaliser, une simple copie de fichiers. Notez qu&#8217;il est formellement déconseillé d&#8217;utiliser cette technique lors d&#8217;un entretien chez Xebia <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p><h4><a
name="ForkJoinlemultithreadfacileenJ"></a>Fork/Join: le multithread facile en Java 7</h4><p>Alors que le nombre de core par CPU ne cesse de croître, il serait peut être temps que nous utilisions à bon escient les ressources disponibles sur nos serveurs, non ? Java sait depuis toujours faire du multi-threading (encore heureux !) mais il est généralement très compliqué de faire du code multi-threadé efficace et maintenable. Notamment, la synchronisation entre les différent Thread a toujours été source de problèmes. Java 5 puis 6 apportèrent d&#8217;importantes innovations, sous la forme du package <em>java.util.concurrent</em> qui fournit:</p><ul><li>les <a
title="Executors" href="http://download.oracle.com/javase/tutorial/essential/concurrency/exinter.html">Executors</a>, qui abstraient des pools de threads, ainsi que les <a
title="Future" href="http://download.java.net/jdk7/docs/api/java/util/concurrent/Future.html">Future</a> et <a
title="Callable" href="http://download.java.net/jdk7/docs/api/java/util/concurrent/Callable.html">Callable</a></li><li>des queues et Collections thread-safe</li><li>le support de la déclaration de timeout sur les opérations</li><li>des classes implémentant des patterns de synchronisation et d&#8217;exclusion mutuelle, comme les Barrier ou Countdown Latch (plus de détails <a
title="chez OReilly" href="http://onjava.com/pub/a/onjava/excerpt/jthreads3_ch6/index1.html">chez O&#8217;Reilly</a>)</li><li>le package <em><a
title="javautilconcurrentatomic" href="http://download.java.net/jdk7/docs/api/java/util/concurrent/atomic/package-summary.html">java.util.concurrent.atomic</a></em> fournissant des wrappers pour des variables simples permettant des opérations de modification atomiques sur ces variables</li></ul><p>Ces apports au langage étaient les bienvenus. Néanmoins, certains type de tâche, et notamment les algorithmes de type <a
title="" href="http://fr.wikipedia.org/wiki/Diviser_pour_r%C3%A9gner_%28informatique%29">&laquo;&nbsp;diviser pour régner&nbsp;&raquo;</a> ou <a
title="mapreduce" href="http://fr.wikipedia.org/wiki/MapReduce">&laquo;&nbsp;map/reduce&nbsp;&raquo;</a>, requièrent des fonctionnalités qui n’étaient pas offertes .</p><p>Julien Ponge nous gratifie d&#8217;un article <a
title="sur Oracle Tech. Network" href="http://www.oracle.com/technetwork/articles/java/fork-join-422606.html">sur Oracle Tech. Network</a> avec l&#8217;exemple d&#8217;utilisation suivant: on désire compter le nombre d’occurrences d&#8217;un mot donné dans des fichiers répartis dans une arborescence du filesystem. Et ca tombe bien, Java 7 fournit justement une implémentation du principe fork/join au travers de la classe abstraite <a
title="ForkJoinTask" href="http://download.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinTask.html">ForkJoinTask</a> et de ses sous-classes. Le filesystem est parcouru grâce à des tâches récursives, mais parallèles. Initialement on a une tâche de type FolderSearchTask qui étend <a
title="RecursiveTask" href="http://download.oracle.com/javase/7/docs/api/java/util/concurrent/RecursiveTask.html">RecursiveTask</a> et crée:</p><ul><li>pour chaque répertoire, une nouvelle tâche FolderSearchTask</li><li>pour chaque document, une DocumentSearchTask qui étend aussi <a
title="RecursiveTask" href="http://download.oracle.com/javase/7/docs/api/java/util/concurrent/RecursiveTask.html">RecursiveTask</a> et compte le nombre d’occurrences du mot recherché</li></ul><p>Au final l&#8217;algorithme est rendu quasi-trivial avec l&#8217;utilisation du nouveau Framework, alors qu&#8217;il n&#8217;en aurait pas été de même avant Java 7. En effet celui-ci permet de résoudre des problèmes récursifs dont ne ne connaît à priori pas la taille. Dans le cas exposé le comptage débute alors qu&#8217;on ne sait pas quelle sera la profondeur du système de fichiers ni le nombre de documents qui sera rencontré.</p><p>Une image valant mieux qu&#8217;un long discours, voici une illustration assez explicite accompagnant <a
title="larticle" href="http://www.oracle.com/technetwork/articles/java/fork-join-422606.html">l&#8217;article</a> dont nous vous conseillons fortement la lecture:</p><div
align="center"><a
href="http://www.oracle.com/technetwork/articles/java/fork-join-422606.html"><img
src="http://www.oracle.com/ocom/groups/public/@otn/documents/digitalasset/422591.png" alt="" border="0" /></a></div><h4><a
name="SortiedeGroovyetbeta"></a>Sortie de Groovy 1.8.1 et 1.9 beta 1</h4><p>Le projet Groovy continue à avancer et sort la première version corrective de la branche 1.8 et sa nouvelle beta de la 1.9.</p><p>Au menu pour la 1.8.1 :</p><ul><li>plus de 40 bugfixes.</li><li>amélioration du JSonBuilder avec un mode streaming.</li><li>la suite du chantier sur les performances des opérations arithmétiques sur type primitifs.</li></ul><p>Pour la 1.9 beta 1 :</p><ul><li>plus de 20 bugfixes</li><li>intégration des nouveautés Java 7 liées au Project Coin</li></ul><p>Pour le détail complet, voir l&#8217;<a
title="annonce sur DZone" href="http://groovy.dzone.com/announcements/groovy-181-and-19-beta-1">annonce sur DZone</a> ou les release notes JIRA des versions <a
title="1.8.1" href="http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10242&amp;version=17223">1.8.1</a> et <a
title="19 beta 1" href="http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10242&amp;version=17153">1.9 beta 1</a>.</p><h4><a
name="SortiedeGoogleAppEngineSDK"></a>Sortie de Google App Engine SDK 1.5.2</h4><p>Une nouvelle <a
title="version" href="http://googleappengine.blogspot.com/2011/07/app-engine-152-sdk-released.html">version</a> 1.5.2 du SDK de Google App Engine vient de sortir. Pour rappel, GAE est une plateforme as a service (<a
title="PaaS" href="http://fr.wikipedia.org/wiki/Platform_as_a_service">PaaS</a>) permettant d&#8217;héberger dans le cloud des applications web Java et Python ( et prochainement <a
title="Go" href="http://code.google.com/intl/fr/appengine/docs/go/overview.html">Go</a>, le nouveau langage développé par Google).</p><p>En plus de quelques bogues corrigés, cette release apporte quelques nouveautés intéressantes, comme :</p><ul><li>Des paramètres pour ajuster le ratio coût/performance de l&#8217;application: Possibilité de définir le nombre minimale d&#8217;instances au repos, et la latence minimale d&#8217;attente, qui permet d&#8217;ajuster le temps minimum qu&#8217;une requête doit attendre dans la queue avant d&#8217;être traitée par une instance.</li><li>Suppression de la contrainte de créer des index explosés pour &laquo;&nbsp;les big entities&nbsp;&raquo; et réduction des index personnalisés.</li><li>Les statistiques du Datastore peuvent être regroupées par espace de nom.</li><li>Des informations supplémentaires ont été ajoutés à la page d&#8217;administration des Task Queue.</li><li>La limitation de la taille de la Pull Task est passée à 1MB.</li></ul><p>Pour plus d&#8217;infos, voir la <a
title="release note" href="http://code.google.com/p/googleappengine/wiki/SdkForJavaReleaseNotes">release note</a>.</p><p>Force est de constater que la plateforme de Google s&#8217;enrichit de release en release. De nombreuses limitations se réduisent voire disparaissent au fur et à mesure. Les possibilités de monitoring, de tuning, et d&#8217;administration des backends commencent à bien s&#8217;étoffer.</p><h4><a
name="Scalaversuneversionclassiqueet"></a>Scala : vers une version &laquo;&nbsp;classique&nbsp;&raquo; 2.9.1 et une version .Net</h4><p>Scala va bientôt une version 2.9.1 qui est maintenant disponible en <a
title="premire Release Candidate" href="http://www.scala-lang.org/node/10430">première Release Candidate</a>. Cette version devrait corriger un certain nombre de bug et mettre en place des améliorations en particulier au niveau de l’interpréteur.</p><p>Par ailleurs, Miguel Garcia, de l’équipe Scala à l’EPFL, <a
title="vient d’annoncer" href="http://www.scala-lang.org/node/10299">vient d’annoncer</a> une avancée majeure dans l’adaptation du langage de Martin Odersky à la plateforme .NET. Dans ce projet financé par Microsoft, l’adaptation a été rendue possible grâce au projet <a
title="IKVMNET" href="http://www.ikvm.net/">IKVM.NET</a>. IKVM est un projet mature et toujours en activité qui implémente un framework Java dédié aux plateformes Mono et .NET. On y trouve :</p><ul><li>la JVM compilée pour .NET,</li><li>une implémentation .NET de bibliothèques Java,</li><li>et un convertisseur JAR vers DLL.</li></ul><p>Miguel a mis en place un plugin apppelé <a
title="jdk2ikvm" href="http://lamp.epfl.ch/~magarcia/jdk2ikvm/">jdk2ikvm</a> pour le compilateur Scala qui permet de convertir un programme Scala pour JDK en programme Scala pour IKVM et donc .NET. Les développements ne sont actuellement pas complètement stabilisés, mais ils sont utilisables aux dires de l’auteur. Parmi les développements futurs, Miguel prévoit de développer un plugin Scala pour l’IDE Visual Studio et l’adaptation des collections concurrentes aux modèle de gestion de thread de .NET.</p><h4><a
name="ClojureScript"></a>ClojureScript</h4><p>Du côté de Clojure, l’annonce a été faite par Rich Hickey en personne (le créateur de Clojure) lors du <em>Clojure NYC Meetup</em> de juillet. Rich nous a appris la sortie de ClojureScript (voir la <a
title="vidéo" href="http://blip.tv/clojure/rich-hickey-unveils-clojurescript-5399498">vidéo</a>). ClojureScript est une adaptation de Clojure non pas à la plateforme .NET, mais à la plateforme JavaScript. Vous écrivez vos programmes en Clojure et ça vous le compile en JavaScript. La motivation derrière ce projet vient du fait que JavaScript est un langage donnant un accès un scope d’applications de plus en plus large, allant du client au service. Cependant, les développeurs de ClojureScript considèrent que la langage JavaScript possède un certain nombre de faiblesses, notamment pour la construction d’applications robustes qui nécessite de la discipline et le respect de conventions. C’est sur ce point que ClojureScript compte apporter des solutions. Il est possible récupérer une version depuis <a
title="GitHub" href="https://github.com/clojure/clojurescript">GitHub</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/07/26/revue-de-presse-xebia-221/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Lancement du projet Platform as a Service &#171;&#160;Cloud Foundry&#160;&#187; de Spring Source</title><link>http://blog.xebia.fr/2011/04/13/lancement-du-projet-platform-as-a-service-cloud-foundry-de-spring-source/</link> <comments>http://blog.xebia.fr/2011/04/13/lancement-du-projet-platform-as-a-service-cloud-foundry-de-spring-source/#comments</comments> <pubDate>Wed, 13 Apr 2011 08:12:23 +0000</pubDate> <dc:creator>Alexis Kinsella</dc:creator> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[cloud]]></category> <category><![CDATA[CloudFoundry]]></category> <category><![CDATA[Grails]]></category> <category><![CDATA[Rails]]></category> <category><![CDATA[Ruby]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7415</guid> <description><![CDATA[L'attente fut longue, depuis l'annonce du rachat de SpringSource par VMware en août 2009, cependant la synergie VMware + SpringSource semble porter ses fruits. Le terrain a été préparé consciencieusement depuis presque 2 années maintenant, puisque SpringSource/VMware a bâti au fur et à mesure son portefeuille de technologies Cloud, leur permettant à ce jour de proposer sûrement une des offres les plus prometteuses du marché]]></description> <content:encoded><![CDATA[<p
style="text-align: left;">L&#8217;attente fut longue, depuis <a
title="l'annonce du rachat de SpringSource par VMware" href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/">l&#8217;annonce du rachat de SpringSource par VMware</a> en août 2009, cependant <a
title="la synergie VMware + SpringSource" href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/">la synergie VMware + SpringSource</a> semble porter ses fruits. Le terrain a été préparé consciencieusement depuis presque 2 années maintenant, puisque SpringSource/VMware a bâti au fur et à mesure son portefeuille de technologies Cloud, leur permettant à ce jour de proposer sûrement une des offres les plus prometteuses du marché, comme le montre cet historique:</p><ul
style="text-align: left;"><li>En décembre 2008, SpringSource annonce la sortie de <a
title="tcServer" href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#SpringSourcetcServerundmServer">tcServer</a>.</li><li>En mai 2009, <a
title="SpringSource annonce la mise  disposition gratuite de sa suite de dveloppement" href="http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#SpringSourceToolSuite">SpringSource annonce la mise à disposition gratuite de sa suite de développement</a> Spring Tool Suite.</li><li>En mai 2009, <a
title="SpringSource rachte Hyperic" href="http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/">SpringSource rachète Hyperic</a> l&#8217;éditeur de l&#8217;outil de supervision HypericHQ, permettant ainsi de disposer d&#8217;une solution de monitoring performante.</li><li>En août 2009 déjà, le mois du rachat de SpringSource par VMware, <a
title="Rod Johnson annonçait sur son blog son intension de lancer Cloud Foundry" href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#SpringSourcelanceCloudFoundry">Rod Johnson annonçait sur son blog son intension de lancer Cloud Foundry</a> tout en donnant sa vision sur une gestion unifiée du cycle de vie des applications au travers des solutions de SpringSource. L&#8217;offre classique de Cloud Foundry est d&#8217;ailleurs toujours en <a
title="ligne" href="http://classic.cloudfoundry.com/">ligne</a>, mais à une nouvelle adresse.</li><li>En avril 2010, <a
title="SpringSourceVMware rachte RabbitMQ" href="http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#RabbitMQrachetparSpringSource">SpringSource/VMware rachète RabbitMQ</a>, proposant ainsi une brique de messaging prête pour le Cloud et intégrée avec Spring.</li><li>En mai 2010, <a
title="SpringSourceVmWare se dote dun cache distribu en rachetant GemStone" href="http://blog.xebia.fr/2010/05/11/revue-de-presse-xebia-158/#SpringSourcesedoteduncachedist">SpringSource/VmWare se dote d&#8217;un cache distribué en rachetant GemStone</a> qui édite le produit GemFire.</li><li>En septembre 2010, <a
title="SpringSourceVMware annonce la sortie de sa plateforme vFabric" href="http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/#LancementdevFabricauVMworldSpr">SpringSource/VMware annonce la sortie de sa plateforme vFabric</a>.</li><li>Au SpringOne2GX en novembre 2010, <a
title="SpringSource/VMware annonce sa plateforme Code2Cloud" href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#SpringOneGXLesannoncesdeSpring">SpringSource/VMware annonce sa plateforme Code2Cloud</a>, qui propose ni plus ni moins d&#8217;apporter le Cloud au développeur via la mise à disposition d&#8217;une suite logicielle de <a
title="gestion du cycle de vie des applications" href="http://en.wikipedia.org/wiki/Application_lifecycle_management">gestion du cycle de vie des applications</a>. Cette plateforme Cloud met à disposition des développeurs des outils tels qu&#8217;un bugtracker basé sur Bugzilla, une intégration avec Mylyn pour Eclipse, un Gestionnaire de code source avec Git, une plateforme d&#8217;intégration continue avec Hudson, ainsi qu&#8217;un ensemble d&#8217;outils intégrés via <a
title="STS" href="http://www.springsource.com/developer/sts">STS</a>.</li></ul><p
style="text-align: left;"> La liste n&#8217;est sûrement pas exhaustive, mais tout cela ne serait pas complet si <a
title="SpringSource ne proposait pas une mise  jour de son framework Spring en version 31" href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#SpringOneGXLesannoncesdeSpring">SpringSource ne proposait pas une mise à jour de son framework Spring en version 3.1</a>. Cette version propose notamment un support de fonctionnalités de cache, un support du protocole AMQP ou bien encore un support des profils permettant de gérer plus facilement des configuration de beans différentes en fonctions des environnements.</p><h2 style="text-align: left;"><a
name="QuestcequeCloudFoundry"></a>Qu&#8217;est-ce que Cloud Foundry?</h2><p
style="text-align: left;">Cloud Foundry, c&#8217;est tout d&#8217;abord un projet de Platform as a Service Open-Source sous licence Apache 2.0 hébergé sur <a
title="GitHub" href="https://github.com/cloudfoundry">GitHub</a> avec un <a
title="site officiel" href="http://www.cloudfoundry.org/">site officiel</a>. Mais c&#8217;est également une <a
title="plateforme dhbergement en mode PaaS" href="http://www.cloudfoundry.com/">plateforme d&#8217;hébergement en mode PaaS</a>, permettant de déployer ses applications en un clic depuis la suite applicative Spring Tool Suite. Cloud Foundry se veut être le premier fournisseur &laquo;&nbsp;Plateform as a Service&nbsp;&raquo; réellement basé sur une solution ouverte, qui n&#8217;implique pas un lock-in technologique.</p><p
style="text-align: left;">SpringSource/VMware à vu les choses en grand puisque le projet se veut multi-langages en proposant le support d&#8217;au moins 3 langages différents: Java (+ différents langages tournant sur la JVM), Ruby, et JavaScript, ainsi que le support de différents frameworks/DSL Web de premier rang, tels que <a
title="Rails" href="http://rubyonrails.org/">Rails</a> ou bien encore <a
title="Sinatra" href="http://www.sinatrarb.com/">Sinatra</a> pour Ruby, ainsi que <a
title="Grails" href="http://grails.org/">Grails</a> pour <a
title="Groovy" href="http://groovy.codehaus.org/">Groovy</a>.</p><p
style="text-align: left;">Au chapitre stockage de données, l&#8217;offre de Cloud Foundry n&#8217;est pas en reste puisque sont proposés les supports d&#8217;une base clé/valeurs via le support Redis, d&#8217;une base orientée document via le support de MongoDB, et d&#8217;une base de données relationnelle via le support de MySQL.</p><p
style="text-align: left;">La suite Spring Tool Suite, qui permet de développer des applications SpringSource sous Eclipse, permet d&#8217;ores et déjà d&#8217;accéder à l&#8217;ensemble de l&#8217;outillage nécessaire pour développer une application prête pour Cloud Foundry.</p><p
style="text-align: left;"><em>Bon à savoir:</em> Une version Cloud Foundry Micro Cloud sera bientôt proposée au téléchargement, elle permettra de faire tourner dans VMware Fusion ou VMware Player une image iso correspondant à une mono instance Cloud Foundry adaptée à un Desktop.</p><div><a
href="http://blog.xebia.fr/wp-content/uploads/2011/04/tumblr_ljjvb5AwCd1qijq5ro1_500.png"></a></div><p
style="text-align: center;"><img
class="size-full wp-image-7416 alignnone" title="tumblr_ljjvb5AwCd1qijq5ro1_500" src="http://blog.xebia.fr/wp-content/uploads/2011/04/tumblr_ljjvb5AwCd1qijq5ro1_500.png" alt="tumblr_ljjvb5AwCd1qijq5ro1_500" width="500" height="360" /></p><p
style="text-align: left;">Face à la richesse de la solution proposée, certains concurrents semblent faire pâle figure, et risquent d&#8217;être relégués à un rôle de challenger de second rang ou bien d&#8217;offre Cloud d&#8217;entrée de gamme.</p><p>Google et son App Engine a du souci à se faire, et va devoir être innovant s&#8217;il veut conserver une place de choix. La solution de CloudBees quant à elle est en train de se faire couper l&#8217;herbe sous le pied, puisque SpringSource/VMware propose maintenant non seulement une offre PaaS de Run at Cloud avec Cloud Foundry, mais également une offre <em>en preview</em> de Build at Cloud avec Code2Cloud.</p><p
style="text-align: left;">Tout cela profite bien évidemment au monde du développement qui voit s&#8217;ouvrir devant lui de nouvelles perspectives qui commençaient à se faire attendre.</p><p
style="text-align: left;"><em>NB:</em> Il est tout de même nécessaire de noter que l&#8217;accès à la <em>Beta</em> de la plateforme est conditionné par l&#8217;obtention d&#8217;un compte, ce qui peut mettre un certain temps. Il semblerait que les équipes aient du mal à suivre la demande. Autre point en suspens, il n&#8217;est pour l&#8217;instant annoncé aucun prix relatif à l&#8217;offre de SpringSource/VMware, espérons que les prix ne fassent pas l&#8217;effet d&#8217;un pétard mouillé. Pour le moment, l&#8217;accès à l&#8217;offre est gratuit, et ce au moins jusqu&#8217;à la fin de la <em>Beta</em>.</p><h2 style="text-align: left;"><a
name="Liensintressants"></a>Liens intéressants</h2><p
style="text-align: left;">Vous trouverez quelques liens ci-dessous permettant de creuser le sujet:</p><ul
style="text-align: left;"><li>Le site communautaire du projet est disponible à l&#8217;adresse suivante: <a
title="httpwwwcloudfoundryorg" href="http://www.cloudfoundry.org">http://www.cloudfoundry.org</a>.</li><li>La plateforme d&#8217;hébergement de Cloud Foundry : <a
title="httpwwwcloudfundrycom" href="http://www.cloudfoundry.com">http://www.cloudfundry.com</a>.</li><li>Le projet GitHub: <a
title="httpsgithubcomcloudfoundry" href="https://github.com/cloudfoundry">https://github.com/cloudfoundry</a>.</li></ul><p
style="text-align: left;">Ainsi que différents articles permettant de bootstrapper rapidement un projet Cloud Foundry avec sa technologie préférée:</p><ul
style="text-align: left;"><li><a
title="Dployer son application Grails en une tape avec Cloud Foundry" href="http://blog.springsource.com/2011/04/12/one-step-deployment-with-grails-and-cloud-foundry/">Déployer son application Grails en une étape avec Cloud Foundry</a>.</li><li><a
title="Roo + Cloud Foundry = La productivité dans le Cloud" href="http://blog.springsource.com/2011/04/12/roo-cloud-foundry-productivity-in-the-cloud/">Roo + Cloud Foundry = La productivité dans le Cloud</a>.</li><li><a
title="Cloud Foundry pour les dveloppeurs Spring" href="http://blog.springsource.com/2011/04/12/cloud-foundry-for-spring-developers/">Cloud Foundry pour les développeurs Spring</a> &#8211; Très bon article sur l&#8217;utilisation des outils STS pour travailler avec Cloud Foundry</li><li><a
title="Lancement de Cloud Foundry  La premire plateforme PaaS ouverte de lindustrie informatique" href="http://blog.springsource.com/2011/04/12/launching-cloud-foundry/">Lancement de Cloud Foundry &#8211; La première plateforme PaaS ouverte de l&#8217;industrie informatique</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/04/13/lancement-du-projet-platform-as-a-service-cloud-foundry-de-spring-source/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/02/15/revue-de-presse-xebia-198/</link> <comments>http://blog.xebia.fr/2011/02/15/revue-de-presse-xebia-198/#comments</comments> <pubDate>Tue, 15 Feb 2011 06:44:02 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[HTML 5]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Kaazing]]></category> <category><![CDATA[NodeJS]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[StormMQ]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6866</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Configuration Spring 3.1 : des parfums de Cloud Computing et de Continous Delivery Partenariat entre StormMQ et Kaazing Le coin de la technique Node.JS stable en 0.4.0 Evènements de notre communauté en France et à l&#8217;étranger Peut-on faire du 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/2011/02/15/revue-de-presse-xebia-198/#ConfigurationSpringdesparfumsd">Configuration Spring 3.1 : des parfums de <em>Cloud Computing</em> et de <em>Continous Delivery</em></a></li><li><a
href="http://blog.xebia.fr/2011/02/15/revue-de-presse-xebia-198/#PartenariatentreStormMQetKaazi">Partenariat entre StormMQ et Kaazing</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/02/15/revue-de-presse-xebia-198/#NodeJSstableen">Node.JS stable en 0.4.0</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/2011/02/15/revue-de-presse-xebia-198/#PeutonfaireduRIAsansFlash">Peut-on faire du RIA sans Flash ?</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="ConfigurationSpringdesparfumsd"></a>Configuration Spring 3.1 : des parfums de <em>Cloud Computing</em> et de <em>Continous Delivery</em></h4><p>Chris Beams a présenté à SpringOne 2GX les <a
href="http://www.infoq.com/presentations/Configuration-in-Spring-3-1" title="nouveauts de configuration de Spring Framework 31" >nouveautés de configuration de Spring Framework 3.1</a>. Les tendances clefs sont :</p><ul><li>L&#8217;approche <strong>Continuous Delivery</strong> grâce à la gestion des configurations de chaque environnement avec des <strong>profiles</strong>,</li><li>Le support des architectures <strong>Platform as a Service</strong> grâce à une API d&#8217;Environnement qui permettra d&#8217;injecter aux applications les configurations d&#8217;environnement et de topologie,</li><li>L&#8217;approche <strong>Infrastructure as code</strong> (cf <a
href="http://www.thoughtworks.com/articles/technology-radar-january-2011" title="ThoughtWorks January 2011 Technology Radar" >ThoughtWorks January 2011 Technology Radar</a>) avec la possibilité de gérer complètement la configuration par programmation.</li></ul><p>La gestion des configurations par environnement est réalisée par la <em>taggage</em> de beans par des profiles. Si un profile n&#8217;est pas activé, les beans qui lui sont associés ne sont pas chargés.<br
/> On peut appliquer ces profiles sur les fichiers XML (<code>&lt;beans profile="development"&gt;</code>), les beans <code>@Composant</code>, les classes <code>@Configuration</code> comme sur les annotations applicatives qui héritent des annotations Spring. Le premier cas d&#8217;utilisation est le chargement d&#8217;une base de données embarqués HSQLDB pour les tests unitaires alors qu&#8217;une DataSource JNDI est utilisée sur les serveurs.</p><p>Cette approche est à la fois inspirée par les <a
href="http://grails.org/doc/latest/guide/3.%20Configuration.html#3.2 Environments" title="configurations programmatiques Grails" >configurations programmatiques Grails</a> et par l&#8217;astuce d&#8217;import d&#8217;un fragment spécifique à l&#8217;environnement ( <code>&lt;import resource="classpath:applicationContext-${env}.xml" /&gt;</code>).</p><p>L&#8217;API <code>Environment</code> expose de façon unifiée les paramètres spécifiques à chaque environnement (variables système, JNDI, <code>init-param</code> d&#8217;application web, configuration middleware, etc).<br
/> Cette API permettra à des solutions de <em>Java Platform as a Service</em> d&#8217;injecter les éléments de configuration aux applications Spring. La solution AppCloud de VMWare sera surement la première à tirer partie de cette API <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p><p>Plus de détails sur les profiles dans <a
href="http://blog.springsource.com/2011/02/14/spring-3-1-m1-introducing-profile/" title="SpringSource Blog  Spring 31 M1 Introducing Profile" >SpringSource Blog &#8211; Spring 3.1 M1: Introducing @Profile</a>.</p><h4><a
name="PartenariatentreStormMQetKaazi"></a>Partenariat entre StormMQ et Kaazing</h4><p>La semaine dernière StormMQ et Kaazing annonçaient un <a
href="http://blog.stormmq.com/2011/02/08/stormmq-and-kaazing-bring-the-mq-to-the-browser/" title="nouveau partenariat" >nouveau partenariat</a>.</p><p><a
href="http://stormmq.com/" title="StormMQ" >StormMQ</a> est une entreprise anglaise qui propose un service hébergé de type MOM (Message-Oriented Middleware) ou un cluster clé en main à héberger dans l’entreprise. Derrière se cache un broker de message respectant le protocole AMQP. Plusieurs modes d’accès sont possibles, par l’intermédiaire d’une API java à l’aide d’une librairie RabbitMQ ou d’une API REST en PHP par exemple.</p><p><a
href="http://kaazing.com/" title="Kaazing" >Kaazing</a> est un des tous premiers serveur offrant un service pour les WebSockets. Les WebSockets permettent d’établir des communications full-duplex à travers le réseau web, évitant les anciennes techniques de long polling pour maintenir une communication avec le serveur et écouter des événements.</p><p>Avec ce partenariat, StormMQ compte proposer une solution clé en main permettant de faire de la messagerie sur le web. Il est encore un peu tôt pour dégager de vrais cas d’utilisation en entreprise mais la synergie entre ces deux solutions se trouve entre d’un côté un client 100% javascript facile à déployer ou à adapter et d’un autre côté un serveur de messagerie déporté évitant la maintenance et garantissant une certaine scalabilité.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="NodeJSstableen"></a>Node.JS stable en 0.4.0</h4><p>Après une succession de versions 0.3.x étiquetées &laquo;&nbsp;instables&nbsp;&raquo;, LinuxFr <a
href="http://linuxfr.org/2011/02/12/27858.html" title="nous apprend" >nous apprend</a> que Node.JS arrive aujourd&#8217;hui en version 0.4.0 stable. Rappelons que NodeJs est un serveur full-javascript dont on entend de plus en plus parler. D&#8217;ailleurs, c&#8217;est tout le langage javascript qui semble monter en puissance ces temps-ci. Nous ne nous appesantirons pas trop sur <a
href="http://nodejs.org/v0.4_announcement.html" title="les nouveautés" >les nouveautés</a> de Node.JS, mais il est bon d&#8217;apporter quelques précisions quand à Javascript. Nous sommes nombreux à avoir toujours vu dans ce langage un langage de seconde zone, assez inintéressant à part pour effectuer quelques requêtes ajax et dynamiser une page html. Mettons nous bien dans la tête que ce temps est révolu. Des bindings existaient déjà pour les librairies graphiques client lourd comme GTK ou QT mais aussi Mozilla XUL. Dans Open/LibreOffice, on pouvait <a
href="http://asserttrue.blogspot.com/2010/07/how-to-manipulate-openoffice.html" title="utiliser Javascript" >utiliser Javascript</a> pour définir ses macros et Mozilla Rhino était inclu dans Java 6. Maintenant, Javascript débarque coté serveur. La guerre que se sont menés à coup de benchmarks les différents éditeurs de navigateur nous permet aujourd&#8217;hui d&#8217;avoir des performances intéressantes pour Node.JS qui s&#8217;appuie sur V8, le moteur javascript de Chrome.<br
/> Alors non, ce n&#8217;est pas demain la veille que nous remplacerons nos Tomcat et autres GlassFish par Node.JS. Néanmoins la tendance est à suivre de près.<br
/> Pas plus tard que la semaine dernière, nous notions par ailleurs que JQuery est maintenant buildé sous ce serveur, et ce ne sont pas les seuls à l&#8217;utiliser: <a
href="http://bostinnovation.com/2011/01/15/who-is-using-node-js-and-why-yammer-bocoup-proxlet-and-yahoo/" title="Yammer et dautres" >Yammer et d&#8217;autres</a> utilisent eux aussi Node.JS. Pour faire écho à la conclusion de la news &laquo;&nbsp;Peut-on faire du RIA sans Flash ?&nbsp;&raquo;, Javascript est le langage à suivre en 2011 !</p><p>Dernière minute: Web Tambouille publie aujourd&#8217;hui <a
href="http://www.web-tambouille.fr/2011/02/15/node-js-partie-1-tout-ce-que-vous-devez-savoir-sur-node-js.html#" title="le 1er" >le 1er</a> d&#8217;une série de 4 articles dédiés à Node.JS. A découvrir d&#8217;urgence !</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements  de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="PeutonfaireduRIAsansFlash"></a>Peut-on faire du RIA sans Flash ?</h4><p><a
href="http://www.zenexity.fr/" title="Zenexity" >Zenexity</a> a organisé un événement ce 9 février intitulé &laquo;&nbsp;Peux-on faire du RIA sans Flash ?&nbsp;&raquo;.<br
/> L&#8217;événement était constitué de 4 interventions de 20 minutes chacune présentées par des employés de zenexity. Les 4 interventions ont brossé un tableau des RIA 100% html, en mettant l&#8217;accent sur les innovations qu&#8217;apportent HTML5 aujourd&#8217;hui. En partant du design web, en passant par la fascinante API canvas, les CSS transitions avec des démos particulièrement convaincantes pour finir par une intervention de Guillaume Bort mettant l&#8217;accent sur les avantages au niveau architecture web de l&#8217;approche html5 au niveau sémantique et notamment sur l&#8217;aspect propriétaire du flash.<br
/> Les slides sont en html5 bien sûr, disponible sur le site <a
href="http://www.zengularity.com/event/1237889561" title="zengularity" >zengularity</a>.<br
/> Alors certes le parc de navigateurs limite l&#8217;adoption de ces innovations, mais pour un projet démarrant aujourd&#8217;hui le choix n&#8217;est pas si évident entre du flash et du html5. Ce qui marque c&#8217;est surtout la relative facilité d&#8217;usage de ces éléments à condition d&#8217;accepter javascript comme un langage de premier plan. Le langage à (re)-apprendre en 2011 ?</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/02/15/revue-de-presse-xebia-198/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/</link> <comments>http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#comments</comments> <pubDate>Tue, 02 Nov 2010 21:24:17 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[JOOQ]]></category> <category><![CDATA[Mozilla Rainbow]]></category> <category><![CDATA[ROO]]></category> <category><![CDATA[SpringOne 2GX]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5816</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII SpringOne2GX 2010 &#8211; Les annonces de SpringSource Spring ROO 1.1.0 Sortie de GWT 2.1 Mozilla Rainbow: enregistrement audio et video dans le browser Le coin de la technique jOOQ 1.4.2, ou comment faire du SQL object Actualité éditeurs / SSII [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /></p><p><em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#SpringOneGXLesannoncesdeSpring">SpringOne2GX 2010 &#8211; Les annonces de SpringSource</a></li><li><a
href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#SpringROO">Spring ROO 1.1.0</a></li><li><a
href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#SortiedeGWT">Sortie de GWT 2.1</a></li><li><a
href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#MozillaRainbowenregistrementau">Mozilla Rainbow: enregistrement audio et video dans le browser</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/#jOOQoucommentfaireduSQLobject">jOOQ 1.4.2, ou comment faire du SQL object</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="SpringOneGXLesannoncesdeSpring"></a>SpringOne2GX 2010 &#8211; Les annonces de SpringSource</h4><p>La semaine dernière se tenait la conférence SpringOne 2GX à Chicago. Cette conférence a été le théâtre de nombreuses annonces du duo SpringSource/Vmware. Cette actualité est notamment relayée sur le <a
title="blog de Rod Johnson" href="http://blog.springsource.com/2010/10/21/springone2gx-2010-driving-java-innovation-into-the-cloud/">blog de Rod Johnson</a>.</p><h5>Code2Cloud</h5><p>SpringSource présente <a
title="Code2Cloud" href="http://www.springsource.com/code2cloud">ici</a> une forge logicielle mettant en oeuvre des services tels que :</p><ul><li>un système de <em>bug tracking</em> basé sur Bugzilla,</li><li>utilisation du système de <em>bug tracking</em> avec <a
title="Mylyn" href="http://www.eclipse.org/mylyn/">Mylyn</a></li><li>la <strong>gestion du code source</strong> avec <a
title="Git" href="http://git-scm.com/">Git</a>, le système de contrôle de version distribué phare du moment,</li><li>de l&#8217;<strong>intégration continue</strong> avec <a
title="Hudson" href="http://www.eclipse.org/mylyn/">Hudson</a>,</li><li>une intégration de cette nouvelle plateforme avec <a
title="STS" href="http://www.springsource.com/developer/sts">STS</a>.</li></ul><p>Code2Cloud a pour ambition de simplifier la vie des développeurs tout en augmentant leur productivité en leur permettant de se focaliser sur les aspects métiers. Nous ne manquerons pas de suivre l&#8217;actualité de ce projet et de l&#8217;évaluer dès que la <strong>Developer Preview</strong> sera disponible. Cette preview ne devrait pas être disponible avant le début 2011 (cf <a
title="FAQ" href="http://www.springsource.com/code2cloud/faq">FAQ</a>).<br
/> Pour ceux qui se posaient la question, le code de ce projet sera fournit sous les termes de la GPL.</p><h5>Preview de Spring 3.1</h5><p>De nombreuses évolutions nous attendent dans la version <strong>3.1</strong> du framework Spring avec au menu :</p><ul><li>le support des servlet 3.0,</li><li> les profils d&#8217;environnement permettant de charger des propriétés différentes selon que l&#8217;on soit sur un environnement de développement, de recette ou de production (ce principe est notamment utilisé dans <a
title="Grails" href="http://www.grails.org/">Grails</a> par exemple),</li><li>une couche d&#8217;abstraction pour l&#8217;accès aux systèmes de cache (<a
title="EhCache" href="http://ehcache.org/">EhCache</a> et <a
title="GemFire" href="http://www.gemstone.com/products/gemfire">GemFire</a> dans un premier temps) et une nouvelle annotation <code>@Cacheable</code>,</li><li> un effort a aussi été réalisé afin de diminuer le nombre de configuration qu&#8217;il est possible de réaliser en xml mais pas en utilisant des annotations.</li></ul><p>Cette version semble prévue pour le début de l&#8217;année 2011 (la roadmap s&#8217;arrête actuellement mi-janvier 2011 avec la 3.1M2).</p><p>Mais SpringSource annonce de nouveaux projets venant s&#8217;ajouter au portefeuille. Les voici:</p><h5>Spring Data</h5><p>SpringSource s&#8217;attaque avec <a
title="Spring Data" href="http://www.springsource.org/spring-data">Spring Data</a> aux <a
title="bases de données NoSql" href="http://blog.xebia.fr/2010/04/21/nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql/">bases de données NoSql</a>. L&#8217;idée est de fournir un moyen simple d&#8217;accès aux bases de données non relationnelles ainsi qu&#8217;à des technologies telles que <a
title="Oracle RAC" href="http://www.oracle.com/technetwork/database/clustering/overview/index.html">Oracle RAC</a>.<br
/> Le projet <strong>Spring Data</strong> contient de nombreux sous projets permettant notamment l&#8217;accès aux bases de données orientées :</p><ul><li><strong>clé-valeur</strong> avec le support actuel de <a
title="Redis" href="http://code.google.com/p/redis/">Redis</a>, le support de <a
title="Membase" href="http://www.membase.org/">Membase</a> est prévu prochainement,</li><li><strong>document</strong> avec le support actuel de <a
title="CouchDB" href="http://couchdb.apache.org/">CouchDB</a> et de <a
title="MongoDB" href="http://www.mongodb.org/">MongoDB</a>,</li><li><strong>colones</strong> avec le futur support de <a
title="HBase" href="http://hbase.apache.org/">HBase</a>, de <a
title="Hadoop" href="http://hadoop.apache.org/">Hadoop</a> et de <a
title="Cassandra" href="http://cassandra.apache.org/">Cassandra</a>,</li><li><strong>graphe</strong> avec le support de <a
title="Neo4j" href="http://neo4j.org/">Neo4j</a>.</li></ul><p>Le projet propose un système de <em>templating</em> bien connu des développeurs utilisant le framework Spring, pour permettre l&#8217;accès à ces bases de données.</p><h5>Spring Mobile</h5><p><a
title="Ce projet" href="http://git.springsource.org/spring-mobile">Ce projet</a> a pour but de fournir un meilleur support pour l&#8217;écriture d&#8217;applications destinées aux terminaux mobiles. Il repose sur des évolutions de <strong>Spring MVC</strong> et un partenariat avec <strong>Google</strong> autour de <strong>GWT</strong>.</p><h5>Spring Social</h5><p><a
title="Ce projet" href="http://www.springsource.org/spring-social">Ce projet</a> doit simplifier les interactions avec des services des réseaux sociaux tels que <strong>Twitter</strong>, <strong>Facebook</strong> ou encore <strong>LinkedIn</strong>. <em>Spring Social</em> fournira :</p><ul><li>un <strong>Social Network Template</strong> permettant d&#8217;interagir avec les réseaux sociaux supportés (<code>LinkedInTemplate</code>, <code>FacebookTemplate</code> &#8230;),</li><li>une intégration <a
title="OAuth" href="http://oauth.net/">OAuth</a> pour la gestion des autorisations (une <strong>request factory</strong> signera les requêtes <strong>REST</strong> avec les informations d&#8217;autorisation <strong>OAuth</strong> requises)</li><li>le mécanisme nécessaire à l&#8217;extraction du <strong>Facebook User ID</strong>.</li></ul><p><strong>SpringSource</strong> fournit un <a
title="exemple dapplication" href="http://greenhouse.springsource.org/">exemple d&#8217;application</a> permettant de voir comment fonctionne ce nouveau projet.</p><h5>Spring Payment Services</h5><p><a
title="Ce projet" href="http://www.springsource.org/spring-payment">Ce projet</a> facilitera l&#8217;intégration de services de paiement dans les applications <strong>Spring</strong>. Ce projet réalisé en partenariat avec <a
title="Visa" href="http://www.visa.com">Visa</a> qui fournit l&#8217;expertise métier aux développeurs de <strong>SpringSource</strong> vise à permettre différents types de paiements (paiement en ligne, paiement mobile, paiement de personne à personne &#8230;) via différents fournisseurs de services de paiement (donc pas uniquement <strong>Visa</strong>). Spring Payment Services étant encore en incubation, il est possible que les API subissent un lifting plus ou moins prononcé. Il est donc préférable de l&#8217;utiliser uniquement pour évaluation à l&#8217;heure actuelle.</p><h4><a
name="SpringROO"></a>Spring ROO 1.1.0</h4><p>En restant toujours dans l&#8217;écosystème de SpringSource, Spring Roo 1.1.0 <a
title="vient de sortir" href="http://blog.springsource.com/2010/10/27/spring-roo-1-1-0-is-released/">vient de sortir</a> après 10 mois de gestation.</p><p>Spring Roo est un outil de haute productivité de SpringSource pour développer rapidement des applications Java. Par l&#8217;intermédiaire d&#8217;un shell, intégré à SpringSource Tool Suite, on peut en quelques commandes construire le squelette d&#8217;un projet, avec pojos et classes de tests, puis ajouter ensuite tout un ensemble de fonctionnalités liées à des frameworks tels que Spring MVC, Hibernate, JMS (la liste est longue)&#8230; Spring Roo s&#8217;appuie massivement sur les annotations et AspectJ pour générer les sources.</p><p>Parmi les nouvelles fonctionnalités:</p><ul><li>du <em>reverse engineering</em> incrémental à partir de la base de données. On génère les entités à partir de la base de données. Si le modèle évolue ensuite, les entités seront enrichies mais en gardant les éventuelles modifications que le développeur a pu ajouter depuis la dernière génération.</li><li>des améliorations avec Spring MVC. Spring Roo utilise des fichiers JSPX (JSP <em>XML compatible</em>) au lieu de JSP ce qui lui permet à présent de pouvoir faire des aller-retours (<em>round-trip</em>) avec le modèle pour mettre à jour un champ par exemple.</li><li>une meilleure intégration de GWT et de Google App Engine.</li><li>une intégration de Apache Solr, le serveur de recherche derrière Apache Lucene, garantissant la réindéxation des éléments lorsqu&#8217;une entité est insérée, mise à jour ou effacée.</li><li>des nouvelles annotations comme <code>@RooJson</code> qui ajoute deux méthodes de sérialisation/désérialisation à votre classe et <code>@RooSerializable</code> pour maintenir le <code>serialVersionUID</code>.</li></ul><p>Le projet a lui-même subi des changements au niveau de son développement. Outre le passage à OSGI, ses sources sont maintenant sous Git (tout comme Hibernate récemment) et le projet a un nouveau logo. SpringSource a également mis à jour la plupart des librairies (JPA 2, Spring Framework, Spring Security, Spring Web Flow, Log4j, ActiveMQ, AspectJ et GWT).</p><p>Se plaçant comme une alternative à des outils comme Grails pour la haute productivité, il a le très grand avantage d&#8217;être <em>full java</em>. Par ailleurs, son shell, avec ses aides et ses complétions, est très réussi. A voir maintenant s&#8217;ils arrivent à convaincre plus de projets à migrer sur cette solution. Pour ceux qui aimerait en savoir plus, <em>Spring Roo in Action</em> <a
title="va paratre" href="http://www.manning.com/dickens/">va paraître</a> chez Manning au printemps 2011.</p><h4><a
name="SortiedeGWT"></a>Sortie de GWT 2.1</h4><p>Après des mois d&#8217;attente, nous avons accueilli avec joie la sortie de <a
title="GWT21" href="http://googlewebtoolkit.blogspot.com/2010/10/announcing-final-release-of-gwt-21.html">GWT-2.1</a> jeudi dernier. Cette version arrive avec beaucoup de nouveautés; au menu un framework Editor, RequestFactory, MVP, Nouveaux widgets et bien plus. Bruce Johnson et son équipe ont voulu que cette version de GWT soit celle de la maturité. GWT 2.1 a pour objectif de bien répondre aux besoins des applications d&#8217;entreprise et les applications de haute scalabilité. C&#8217;est la version qui marie RAD, RIA et scalabilité.<br
/> Parmi les nouveautés on trouve:</p><ul><li><strong>le framework Editor</strong>: Ce nouveau framework assure le binding entre les vues et le modèle. Vous aurez moins de code à écrire afin de peupler vos interfaces graphiques avec le contenu de vos POJO et vice versa.</li><li><strong>Le framework RequestFactory</strong> : Une alternative de GWT-RPC permettant de créer des applications CRUD. RequestFactory n&#8217;a pas pour but de remplacer GWT-RPC, mais plutôt de simplifier la mise en place de la couche d&#8217;accès aux données entre le client et le serveur.</li><li><strong>Le framework MVP (Places et activities)</strong>: Enfin un framework interne qui implémente le pattern Model-View-Presenter en se basant sur les <em>Places</em> (notion de Lieu ou de place dans l&#8217;application) et les <em>Activities</em> (une activity c&#8217;est ce que peut faire un utilisateur dans une région de la page)</li><li><strong>Data présentation widgets (<a
title="cell widgets" href=" http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellSampler ">cell widgets</a>)</strong>: des composants orientés données ont été ajoutés toujours dans le but de permettre aux applications d&#8217;entreprises qui manipulent des millions d&#8217;enregistrements de faire des rendus rapides et efficaces (CellList, CellTable, CellTree, CellBrowser&#8230;).</li><li><strong>Sécurité</strong>: afin d&#8217;améliorer la sécurité des applications GWT, une nouvelle librairie voit le jour. Disponible sous le package <a
title="comgooglegwtsafehtml" href=" http://google-web-toolkit.googlecode.com/svn/javadoc/2.1/com/google/gwt/safehtml/shared/package-summary.html">com.google.gwt.safehtml</a> et autour de l&#8217;interface SafeHTML. Cette librairie veut limiter les vulnérabilités liées au XSS (Cross-Site-Scripting).</li><li><strong>Logging coté client</strong> : <a
title="javautillogging" href=" http://download.oracle.com/javase/6/docs/api/java/util/logging/package-summary.html">java.util.logging</a> est maintenant émulé dans le GWT-SDK il est désormais possible de créer des logs de la même manière que coté serveur et de les voir affichés dans une popup coté client. Les logs sont configurés non pas via fichier de propriétés mais plutôt via le descripteur <em>.gwt.xml</em>.</li><li><strong>SpeedTracer</strong> : passe d&#8217;un outil de monitoring côté client à un outil de monitoring client-serveur. Il est possible dorénavant de voir avec la même interface les performances du serveur et du client (s&#8217;appuyant entre autre sur <a
title="Spring Insight" href="http://www.springsource.org/insight">Spring Insight</a>).</li></ul><p>D&#8217;autres nouveautés ont été apportées comme l&#8217;amélioration de l&#8217;intégration entre m2eclipse et le plugin Eclipse de Google (meilleure reconnaissance du <em>classpath</em>) et une intégration (plutôt moyenne à mon avis) avec Spring-roo&#8230;</p><h4><a
name="MozillaRainbowenregistrementau"></a>Mozilla Rainbow: enregistrement audio et video dans le browser</h4><p>Mozilla a récemment annoncé <a
title="une nouvelle extension pour Firefox" href="http://mozillalabs.com/rainbow/2010/10/28/cloud-meet-rainbow/">une nouvelle extension pour Firefox</a>: Rainbow. Son rôle est de permettre au browser d&#8217;accéder aux capacités d&#8217;enregistrement audio &amp; vidéo des ordinateurs et de les mettre à disposition à travers une API Javascript. Pour ce faire, Mozilla s&#8217;appuie sur des librairies <em>cross-platform</em> comme:</p><ul><li><a
title="Libvidcap" href="http://libvidcap.sourceforge.net/">Libvidcap</a> pour l&#8217;accès au <em>hardware</em> vidéo</li><li><a
title="Portaudio" href="http://www.portaudio.com/">Portaudio</a> pour le <em>hardware</em> audio</li><li><a
title="Vorbis et Theora" href="http://www.xiph.org/">Vorbis et Theora</a> pour l&#8217;encodage des flux audio et vidéo capturés</li></ul><p>Mais l&#8217;intérêt de cette news réside peu dans l&#8217;extension elle-même qui est encore très loin d&#8217;être exploitable (ne fonctionne que sous Mac OS pour l&#8217;instant). Elle se situe plutôt dans la perspective apportée: il semble que l&#8217;on se dirige de plus en plus vers un monde où le navigateur aura accès aux matériels des machines. Lors d&#8217;un récent XKE (<a
title="notre journée mensuelle d'échange" href="http://www.touilleur-express.fr/2010/05/10/xke-xebia/">notre journée mensuelle d&#8217;échange</a>) nous avions parlé de <em>HTML5 vs Flash</em> et l&#8217;un des problèmes que nous avions évoqué était que la technologie pour faire ne serait-ce qu&#8217;un simple chat vidéo en simple HTML/Javascript n&#8217;existait pas encore. Il semble maintenant que l&#8217;on s&#8217;en rapproche de plus en plus! Alors certes, ce n&#8217;est pas pour aujourd&#8217;hui&#8230; Ce n&#8217;est pas non plus pour demain car pour obtenir une API standard à plusieurs navigateurs, il faudra que les participants se mettent d&#8217;accord: Ericsson, par exemple, <a
title="a commencé à jouer" href="https://labs.ericsson.com/developer-community/blog/beyond-html5-conversational-voice-and-video-implemented-webkit-gtk">a commencé à jouer</a> avec la <a
title="balise &lt;i&gt;device&lt;/i&gt; " href="http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#devices">balise <em>device</em> </a> qui n&#8217;est pas encore standardisée et sur laquelle travaille <a
title="le Whatwg" href="http://wiki.whatwg.org/wiki/FAQ#What_is_the_WHATWG.3F">le Whatwg</a>, alors que l&#8217;implémentation de Mozilla semble <a
title="ne pas passer par cette balise" href="http://github.com/mozilla/rainbow/blob/master/content/example.html">ne pas passer par cette balise</a> (du moins pour l&#8217;instant). Bref, on a le temps de voir arriver toutes ces bonnes choses, mais autant s&#8217;y préparer dès maintenant: le futur réside dans le navigateur !</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="jOOQoucommentfaireduSQLobject"></a>jOOQ 1.4.2, ou comment faire du SQL object</h4><p><a
title="jOOQ" href="http://sourceforge.net/apps/trac/jooq">jOOQ</a>, pour <em>Java Oriented Object Querying</em>, est un framework de persistance qui veut se démarquer des autres. En effet, son créateur Lukas Eder est parti de deux constats:</p><ul><li>le modèle relationnel est aujourd&#8217;hui quasi omniprésent dans les SI. De plus, le langage SQL nous permet de répondre à toutes nos attentes en terme d&#8217;interrogation de bases de données,</li><li>une bonne partie des projets sur lesquels nous travaillons possèdent une base de données <em>legacy</em> dont il n&#8217;est souvent pas possible d&#8217;apporter quelconques modifications.</li></ul><p><em>Mais alors pourquoi utiliser des outils de persistance complexes rajoutant une abstraction au SQL ?</em> Question tout à fait légitime et pleine de bons sens.</p><p>Si vous êtes dans ce cas de figure, vous pouvez télécharger ce petit outil <a
title="ici" href="http://sourceforge.net/projects/jooq/">ici</a> (même si vous ne l&#8217;êtes pas, je ne pense pas qu&#8217;il y ait d&#8217;inconvénient à ce que vous le testiez&#8230;). Puis, générez vos entités à partir de votre modèle relationnel en exécutant un générateur qui va parser votre base et détecter les entités ainsi que leurs relations. Ensuite, il vous suffira de créer vos requêtes en utilisant l&#8217;une des deux manières possibles. Voici un exemple pour illustrer ces propos:</p><p>Nous souhaitons exécuter la requête suivante avec jOOQ:</p><div><strong>Book.sql</strong></div><pre class="brush: java; title: ; notranslate">
-- Select all books by authors born after 1920 from a catalogue:
SELECT *
FROM t_author a
JOIN t_book b ON a.id = b.author_id
WHERE a.year_of_birth &amp;gt; 1920
ORDER BY b.title
</pre><ul><li>Modèle objet:</li></ul><div><strong>AuthorDao.java</strong></div><pre class="brush: java; title: ; notranslate">
// Instanciate your factory using a JDBC connection or datasource,
// and specify the SQL dialect you're using. Of course you can
// have several factories in your application.
Factory create = new Factory(datasource, SQLDialect.MYSQL);
// Create the query using generated, type-safe objects. You could
// write even less code with static imports!
SelectQuery q = create.selectQuery();
q.addFrom(TAuthor.T_AUTHOR);
q.addJoin(TBook.T_BOOK, TAuthor.ID, TBook.AUTHOR_ID);
q.addCompareCondition(TAuthor.YEAR_OF_BIRTH, 1920, Comparator.GREATER);
q.addOrderBy(TBook.TITLE);
</pre><ul><li>DSL SQL:</li></ul><div><strong>AuthorDao.java</strong></div><pre class="brush: java; title: ; notranslate">
// Do it all &quot;on one line&quot;.
SelectQuery q = create.select()
.from(T_AUTHOR)
.join(T_BOOK).on(TAuthor.ID.equal(TBook.AUTHOR_ID))
.where(TAuthor.YEAR_OF_BIRTH.greaterThan(1920))
.orderBy(TBook.TITLE).getQuery();
</pre><p>Ensuite, vous pourrez exécuter et récupérer vos résultats mapper sur vos objets grâce à jOOQ comme suit:</p><div><strong>AuthorDao.java</strong></div><pre class="brush: java; title: ; notranslate">
// Similar query, but don't join books to authors.
// Note the generic type that is added to your query:
SimpleSelectQuery q = create.select(T_AUTHOR)
.where(TAuthor.YEAR_OF_BIRTH.greaterThan(1920))
.orderBy(TAuthor.LAST_NAME).getQuery();
// When executing this query, also Result holds a generic type:
q.execute();
Result result = q.getResult();
for (TAuthorRecord record : result) {
    // With generate record classes, you can use generated getters and setters:
    String firstName = record.getFirstName();
    String lastName = record.getLastName();
    System.out.println(&quot;Author : &quot; + firstName + &quot; &quot; + lastName + &quot; wrote : &quot;);
    // Use generated foreign key navigation methods
    for (TBookRecord book : record.getTBooks()) {
        System.out.println(&quot;  Book : &quot; + book.getTitle());
    }
}
</pre><p>Enfin, l&#8217;API fournie permet d&#8217;exécuter des opérations de CRUD assez facilement:</p><div><strong>AuthorDao.java</strong></div><pre class="brush: java; title: ; notranslate">
// Create a new record and insert it into the database
TBookRecord book = create.newRecord(T_BOOK);
book.setTitle(&quot;My first book&quot;);
book.store();
// Update it with new values
book.setPublishedIn(2010);
book.store();
// Delete it
book.delete();
</pre><p>Vous trouverez tous les exemples cités ci-dessus sur le <a
title="site officiel" href="http://sourceforge.net/apps/trac/jooq/wiki/Examples">site officiel</a>.</p><p>Plutôt sympa, ce framework démarre d&#8217;une idée intéressante en se situant entre les requêtes sql brutes via jdbc mais qui sont difficiles à maintenir et les <em>frameworks</em> tels que Hibernate ou iBatis, un peu trop haut niveau. Pour ne rien gâcher la roadmap du projet est visible ainsi que les tickets de bugs et l&#8217;avancement de chaque sprint, et bien que l&#8217;auteur soit seul sur ce projet, il le fait évoluer à un rythme soutenu.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/11/02/revue-de-presse-xebia-183/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/08/31/revue-de-presse-xebia-174/</link> <comments>http://blog.xebia.fr/2010/08/31/revue-de-presse-xebia-174/#comments</comments> <pubDate>Tue, 31 Aug 2010 05:48:06 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Brevet]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[java7]]></category> <category><![CDATA[Jdk7]]></category> <category><![CDATA[rabbitmq]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5303</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Sortie de RabbitMQ 2.0 Le coin de la technique Gestion automatique des ressources dans Java7 (ARM) Evènements de notre communauté en France et à l&#8217;étranger Google et les brevets Actualité éditeurs / SSII Sortie de RabbitMQ 2.0 La sortie 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/2010/08/31/revue-de-presse-xebia-174/#SortiedeRabbitMQ">Sortie de RabbitMQ 2.0</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/08/31/revue-de-presse-xebia-174/#Gestionautomatiquedesressource">Gestion automatique des ressources dans Java7 (ARM)</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/08/31/revue-de-presse-xebia-174/#Googleetlesbrevets">Google et les brevets</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="SortiedeRabbitMQ"></a>Sortie de RabbitMQ 2.0</h4><p>La sortie de la version 2.0 du serveur de messaging <a
href="http://blog.xebia.fr/2010/02/23/amqp-une-alternative-a-jms/" title="AMQP" >AMQP</a> RabbitMQ vient d&#8217;être annoncée <a
href="http://www.rabbitmq.com/blog/2010/08/27/growing-up/" title="ici" >ici</a>.<br
/> Cette release majeure vient avec une refonte importante et son lot de nouveautés :</p><ul><li>Une refonte de la gestion de la persistence permettant une alternative au moteur de persistence embarqué. Il sera possible de développer un support pour une base de données relationelle ou NoSQL ou tout autre data store.</li><li>Le support de différents protocoles de messaging : AMQP (0-8 et <a
href="http://www.rabbitmq.com/blog/2010/08/04/rabbitmq-and-amqp-0-9-1/" title="0-9-1" >0-9-1</a>), <a
href="http://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol" title="XMPP" >XMPP</a>, <a
href="http://stomp.codehaus.org/Protocol" title="STOMP" >STOMP</a>, HTTP, SMTP&#8230; Il sera aussi possible d&#8217;ajouter de nouveaux protocoles à l&#8217;aide d&#8217;extensions.</li><li>La mise en place d&#8217;une infrastructure ayant pour but de simplifier le développement d&#8217;outils pour la gestion et le monitoring de RabbitMQ.</li><li>Une amélioration de la gestion des plugins (il n&#8217;est plus nécessaire de compiler les plugins, une version pré-compilée peut être directement chargée par RabbitMQ).</li></ul><p>SpringSource qui a récemment racheté RabbitMQ (nous vous en avions parlé <a
href="http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#RabbitMQrachetparSpringSource" title="ici" >ici</a>) propose de son côté un template reprenant les principes des templates jdbc, hibernate, jms ou encore LDAP encapsulant le client Java d&#8217;AMQP. Les utilisateurs habitués à <a
href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/jms/core/JmsTemplate.html" title="JmsTemplate" >JmsTemplate</a> retrouveront donc leurs repères en utilisant l&#8217;<a
href="http://static.springsource.org/spring-amqp/docs/1.0.x/api/org/springframework/amqp/core/AmqpTemplate.html" title="AmqpTemplate" >AmqpTemplate</a> du projet <a
href="http://www.springsource.org/spring-amqp" title="spring AMQP" >spring AMQP</a>.</p><p>SpringSource/VMWare continue donc de faire évoluer son portefeuil de produits avec cette évolution majeure de RabbitMQ, qu&#8217;il considère comme une pièce essentielle à sa stratégie de développement du Cloud Computing (voir <a
href="http://blog.springsource.com/2010/04/13/springsource-acquires-rabbitmq/" title="cet article" >cet article</a> de Rod Johnson).</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="Gestionautomatiquedesressource"></a>Gestion automatique des ressources dans Java7 (ARM)</h4><p>Java7 suit son petit bonhomme de chemin sans qu&#8217;on ait encore une bonne visibilité sur la date de sortie officiel. Le <a
href="http://download.java.net/jdk7/" title="build 105" >build 105</a> de la version actuelle propose une nouvelle fonctionnalité très intéressante qui devrait facilité la vie de chaque développeur: <a
href="http://blogs.sun.com/darcy/entry/project_coin_updated_arm_spec" title="lAutomatic Resource Management" >l&#8217;<em>Automatic Resource Management</em></a>.</p><p>L&#8217;idée, proposée par Joshua Bloch depuis quelques années déjà, consiste à améliorer la fermeture des ressources sous la forme d&#8217;une clause <code>try-with-resources</code>. Actuellement lorsqu&#8217;on manipule une ressource, par exemple un <code>InputStream</code>, la façon la plus propre ressemble à ceci:</p><pre class="brush: java; title: ; notranslate">
public void copyFile(File in, File out) {
    FileInputStream fis = null;
    FileOutputStream fos = null;
    try {
       fis = new FileInputStream(in);
       fos= new FileOutputStream(out);
       // Lire le fichier in et écrire dans le out
       ...
    }  catch (Exception e)  {
       ...
    } finally {
      close(fis);
      close(fos);
    }
}
private void close(Closeable closeable){
    if(closeable != null) {
        try{
           closeable.close();
        } catch(IOException e){...}
    }
}
</pre><p>Ce code devient vite très verbeux et répetitif car beaucoup de vérifications doivent être faites pour s&#8217;assurer de la possibilité de fermer la ressource. La solution pour simplifier cela est de déléguer la fermeture du flux à l&#8217;aide du <code>try</code>:</p><pre class="brush: java; title: ; notranslate">
public void copyFile(File file) {
    try(FileInputStream fis=new FileInputStream(in);
        FileOutputStream fos=new FileOutputStream(out)) {
       // Lire le fichier in et écrire dans le out
       ...
    }
}
</pre><p>Le code gagne énormément en visibilité, les tests pour savoir si la ressource est <code>null</code> ou si la fermeture s&#8217;est bien déroulée sont gérés en interne de la JVM. A noter que pour être fermées les ressources devront étendre une nouvelle interface <code><a
href="http://download.java.net/jdk7/docs/api/java/lang/AutoCloseable.html" title="AutoCloseable" >AutoCloseable</a></code>.</p><p>S&#8217;il existe un certain consensus autour de l&#8217;utilité de cette évolution, il demeure encore un petit débat sur la partie <code>catch</code> des exceptions. Sans rentrer dans les détails, les exceptions levées pendant la fermeture d&#8217;une ressource annihilent celles levées dans le bloc <code>try</code>, ce qui en général est préférable mais du coup peut aussi masquer des exceptions importantes pour l&#8217;analyse du problème.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements  de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Googleetlesbrevets"></a>Google et les brevets</h4><p>Semaine chargée pour Google:</p><ul><li>InfoQ <a
href="http://www.infoq.com/news/2010/08/h264-free" title="nous annonce" >nous annonce</a> que le MPEG LA a décidé de continuer à ne pas réclamer de royalties pour les videos encodées en H.264 et distribuées gratuitement aux utilisateurs. Seules les plateformes vendant des vidéos sont, elles, toujours soumises à taxation. C&#8217;est donc une réponse à Google qui avait il y a quelques temps annoncé WebM, un codec vidéo semblable au H.264 mais plus libre et débarrassé des problèmes de brevets et de royalties qui entravent ce dernier. Si InfoQ ne voit pas trop de problèmes à continuer d&#8217;utiliser H.264, ce n&#8217;est pas du tout l&#8217;avis de <a
href="http://en.wikipedia.org/wiki/Mike_Shaver" title="Mike Shaver" >Mike Shaver</a> ingénieur haut gradé chez Mozilla et <a
href="http://shaver.off.net/diary/2010/08/27/free-as-in-smokescreen/" title="qui rappelle" >qui rappelle</a> que les logiciels permettant de produire ou de consommer ces vidéos devront eux toujours s&#8217;acquitter d&#8217;une licence. La bataille entre WebM et H.264 ne fait donc que commencer.</li><li>Ensuite, c&#8217;est <a
href="http://fr.wikipedia.org/wiki/Paul_Allen" title="Paul Allen" >Paul Allen</a>, le co-fondateur de Microsoft, qui <a
href="http://www.numerama.com/magazine/16620-brevets-onze-geants-du-web-poursuivis-par-le-cofondateur-de-microsoft.html" title="attaque Google et nombre de ses petits camarades" >attaque Google et nombre de ses petits camarades</a> (AOL, Yahoo, Facebook) pour avoir enfreint 4 brevets détenus par sa compagnie &laquo;&nbsp;Interval Licensing&nbsp;&raquo;. Le blog <em>Digits</em> du Wall Street Journal <a
href="http://blogs.wsj.com/digits/2010/08/27/the-paul-allen-suit-a-look-at-the-patents/" title="sest pench sur 2 de ces brevets" >s&#8217;est penché sur 2 de ces brevets</a>. Nous vous déconseillons fortement la lecture de son analyse si vous avez réalisé quoi que ce soit dans l&#8217;informatique ces 10 dernières années. En effet, vous risquez de ne plus trouver le sommeil en vous rendant compte que vous enfreignez sans doutes, vous aussi, nombre de brevets !</li><li>Et pour finir sur Google et les brevets, vous vous souvenez des récentes poursuites engagées par Oracle concernant Java et Android. Google vient de riposter, <a
href="http://googlecode.blogspot.com/2010/08/update-on-javaone.html" title="en annoncant" >en annoncant</a> qu&#8217;aucun de ses employés ne participera à <a
href="http://en.wikipedia.org/wiki/JavaOne" title="JavaOne" >JavaOne</a> <a
href="http://www.oracle.com/us/javaonedevelop/062264.html" title="cette année" >cette année</a>. Pour ceux qui voulaient échanger avec les employés de Google, il semble que c&#8217;est plus tard dans l&#8217;année, à Devoxx, <a
href="http://twitter.com/ecspike/status/22288635610" title="qu'il faille se rendre" >qu&#8217;il faille se rendre</a>. Mais rassurez vous, il y aura quand même de l&#8217;ambiance à JavaOne: James Gosling, père de Java, demande <a
href="http://nighthacks.com/roller/jag/entry/let_larry_know_you_care" title="sur son blog" >sur son blog</a> à toute personne y assistant de porter un TShirt arborant le slogan &laquo;&nbsp;Java just Free it&nbsp;&raquo;. Si cette idée ne risque pas trop de faire bouger Oracle, elle devrait quand même apporter sa dose de fun à l&#8217;évènement !</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/08/31/revue-de-presse-xebia-174/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/05/11/revue-de-presse-xebia-158/</link> <comments>http://blog.xebia.fr/2010/05/11/revue-de-presse-xebia-158/#comments</comments> <pubDate>Tue, 11 May 2010 05:12:47 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[GemStone]]></category> <category><![CDATA[Google Labs]]></category> <category><![CDATA[Grails]]></category> <category><![CDATA[Groovy]]></category> <category><![CDATA[Jarlsberg]]></category> <category><![CDATA[JUG]]></category> <category><![CDATA[Project Coin]]></category> <category><![CDATA[scala]]></category> <category><![CDATA[Sécurité]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[VMWare]]></category> <category><![CDATA[xss]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4611</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII SpringSource se dote d&#8217;un cache distribué Le coin de la technique Jarlsberg, la sécurité en s&#8217;amusant Multi-Catch confirmé dans le projet Coin Evènements de notre communauté en France et à l&#8217;étranger C&#8217;est le printemps, les User Groups fleurissent 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" /><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/11/revue-de-presse-xebia-158/#SpringSourcesedoteduncachedist">SpringSource se dote d&#8217;un cache distribué</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/05/11/revue-de-presse-xebia-158/#Jarlsberglascuritensamusant">Jarlsberg, la sécurité en <em>s&#8217;amusant</em></a></li><li><a
href="http://blog.xebia.fr/2010/05/11/revue-de-presse-xebia-158/#MultiCatchconfirmdansleprojetC">Multi-Catch confirmé dans le projet Coin </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/11/revue-de-presse-xebia-158/#CestleprintempslesUserGroupsfl">C&#8217;est le printemps, les User Groups fleurissent</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SpringSourcesedoteduncachedist"></a>SpringSource se dote d&#8217;un cache distribué</h4><p>VMware vient de faire l&#8217;acquisition de la société GemStone Systems, éditeur de la solution de cache distribué GemFire.  Elle sera gérée désormais sous la houlette de SpringSource.  Ce nouveau rapprochement s&#8217;inscrit dans <a
title="la stratgie affiche" href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#VMwareSpringSalesForceVMforce">la stratégie affichée</a> de la firme de fournir une plateforme complète de cloud destinée aux applications Java.</p><p>Par ailleurs, dans une <a
title="interview" href="http://www.infoq.com/news/2010/05/gemstone">interview</a> donnée à InfoQ, Rod  Johnson affirme que le <em>framework</em> Spring développera les abstractions nécessaires à l&#8217;intégration de ce type de produit, comme c&#8217;est déjà le cas pour les RDBMS, les broker JMS, etc via les <em>Templates</em> Spring, et pourrait permettre l&#8217;intégration d&#8217;autres solutions de data-grid comme Oracle Coherence ou encore Terracotta.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Jarlsberglascuritensamusant"></a>Jarlsberg, la sécurité en <em>s&#8217;amusant</em></h4><p>Xss, DoS, Xsrf&#8230; Des acronymes barbares qui désignent des failles de sécurité courantes dans nos applications Web. Si vous voulez mieux les connaitre, et ainsi vous en protéger, le nouveau projet de Google Labs, <a
title="Jarlsberg" href="http://jarlsberg.appspot.com/">Jarlsberg</a> (fromage norvégien), est pour vous.<br
/> Et comme le meilleur moyen d&#8217;apprendre est de faire, Google met à votre disposition un site truffé de failles de sécurité que vous pourrez hacker à loisir.<br
/> Les failles sont organisées en fonction de leur type :</p><ul><li>Cross-site Scripting (XSS)</li><li>Cross-site Request Forgery (XSRF)</li><li>Cross-site Script Inclusion (CSSI)</li><li>Manipulation de l&#8217;état du client</li><li>Traversée d&#8217;arborescence</li><li>Déni de Service (DoS)</li><li>Exécution de code</li><li>Vulnérabilité de la configuration</li><li>Vulnérabilités AJAX</li></ul><p>Pour venir à bout de ces failles, il existe trois types de tests :</p><ul><li>Tests boite noire : l&#8217;utilisateur ne connait pas le fonctionnement interne du site, il tente de hacker le site en passant par les pages exposées</li><li>Tests boite blanche : le code de l&#8217;application en python est connu par le hacker</li><li>Tests boite grise : un panaché des deux précédentes méthodes</li></ul><p>Ces tests sont servis pour une large variété d&#8217;outils de hacker :</p><ul><li>Snippets HTML</li><li>Upload de fichier</li><li>Administration du site</li><li>création de nouveaux comptes utilisateur</li><li>Language de templating Jarlsberg</li><li>Injection AJAX</li></ul><p>L&#8217;approche est très pédagogique, avec une succession de challenges à résoudre. Par exemple, le premier de ceux ci : pouvez vous uploader sur le site un fichier qui vous permettra d&#8217;exécuter un script sur le serveur d&#8217;application ? Chaque challenge propose des indices, une manière d&#8217;exploiter la faille et une correction.<br
/> Une plongée passionnante dans l&#8217;univers des hackers.</p><p>Avant de vous lancer dans ce Google Lab, nous vous conseillons la lecture de <a
title="larticle de Christian Heilmann" href="http://www.smashingmagazine.com/2010/01/14/web-security-primer-are-you-part-of-the-problem/">l&#8217;article de Christian Heilmann</a>.</p><p>Bien sûr, ces trucs et astuces ne doivent pas être reproduits <em>à la maison</em>, vous pourriez tomber sous le coup de la loi.</p><h4><a
name="MultiCatchconfirmdansleprojetC"></a>Multi-Catch confirmé dans le projet Coin</h4><p>Finalement, après plusieurs hésitations, <a
title="Joe Darcy" href="http://blogs.sun.com/darcy/entry/project_coin_multi_catch_rethrow">Joe Darcy</a> confirme la possibilité de rassembler plusieurs <em>catch</em> d&#8217;exceptions dans une même clause dans Java 7. Ainsi il sera possible d&#8217;écrire:</p><pre class="brush: java; title: ; notranslate">
try{
// code
} catch (ExceptionA|ExceptionB ex){
// code
}
</pre><p>Les discussions portaient sur la deuxième partie de cette proposition, le renvoi ( <em>rethrow</em> ) des exceptions. En effet il peut arriver qu&#8217;une exception soit renvoyée après avoir été attrapée. Dans ce cas elle doit apparaître dans la signature si c&#8217;est une exception vérifiée ( <em>checked</em> ). Par exemple :</p><pre class="brush: java; title: ; notranslate">
public void myMethod() throws Exception {
try{
// A hérite d'Exception
throw new A();
} catch (Exception e){
// code: par exemple un log
throw e;
}
}
</pre><p>Ce que propose le projet Coin, c&#8217;est de vérifier les exceptions possibles dans le bloc <em>try</em> et de donner la possibilité dans la signature de la méthode de renvoyer le type précis des exceptions. Pour cela on utilise le <em>modifier</em> <em>final</em>. Ce qui donne :</p><pre class="brush: java; title: ; notranslate">
public void myMethod() throws A {
try{
// A hérite d'Exception
throw new A();
} catch (final Exception e){
// code: par exemple un log
throw e;
}
}
</pre><p>Ceci permet d&#8217;avoir une signature plus précise et de pouvoir remonter une exception facilement. Les difficultés de cette proposition ont tourné autour du type d&#8217;exception qui se trouve dans la clause catch dans le cas où le type n&#8217;est connu qu&#8217;au Runtime.</p><p>Cette proposition en ravira plus d&#8217;un mais fera aussi sourire ceux qui prônent la suppression des exceptions vérifiées. Pour finir, un petit cas limite amusant de cette proposition, relevé par <a
title="Stephen Colebourne" href="http://mail.openjdk.java.net/pipermail/coin-dev/2010-May/002749.html">Stephen Colebourne</a> :</p><pre class="brush: java; title: ; notranslate">
public void myMethod() {
try{
//  du code sans exception
} catch (final Exception e){
// on envoie une exception vérifiée qui n'est pas dans la signature!
throw e;
}
}
</pre><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="CestleprintempslesUserGroupsfl"></a>C&#8217;est le printemps, les User Groups fleurissent</h4><p>Avec notre plateforme de prédilection, Java, qui s&#8217;ouvre de plus en plus à de nouveaux langages, il fallait bien que la communauté suive. Nous assistons donc ces derniers temps à l&#8217;éclosion de nouveaux User Groups. Le premier à bourgeonner fut le <a
title="Scala User Group" href="http://groups.google.com/group/paris-scala-user-group">Scala User Group</a> (attention, pas &laquo;&nbsp;SUG&nbsp;&raquo; car le nom <a
title="est déjà pris" href="http://www.frenchsug.org">est déjà pris</a>) qui a pris ses racines lors de la <a
title="soirée scala" href="http://www.parisjug.org/xwiki/bin/view/Meeting/20100413">soirée Scala</a> organisée par le Paris JUG. Cette semaine, c&#8217;est Guillaume Laforge, Groovy project lead et <a
title="Cast Codeur émérite" href="http://lescastcodeurs.com/equipe/">Cast Codeur émérite</a>, qui <a
title="a annoncé" href="https://parisjug.dev.java.net/servlets/ReadMsg?list=users&amp;msgNo=828">a annoncé</a> sur la mailing liste du Paris JUG la création du Groovy User Group. La première rencontre est d&#8217;ores et déjà prévue <a
title="le 10 juin" href="http://www.meetup.com/Paris-Groovy-Grails/calendar/13379668/">le 10 juin</a>.<br
/> Ces nouveautés s&#8217;inscrivent dans la lignée de ce que nous avons déjà observé avec <a
title="la multiplication des JUGs" href="http://blog.developpez.com/christophej/p7447/java/la-multiplication-des-jug/">la multiplication des JUGs</a>: la communauté s&#8217;organise pour partager, lier connaissance et évoluer. Après les différents JUGs centrés sur Java, il n&#8217;est pas étonnant de voir des User Groups se créer pour rassembler les personnes intéressées par les nouveaux langages de cette plateforme.<br
/> Par la suite, ces langages resteront-ils sous la coupe des divers JUGs ou allons nous assister à la création du &laquo;&nbsp;Marseille Groovy User Group&nbsp;&raquo; ou du &laquo;&nbsp;Lyon Scala User Group&nbsp;&raquo; ? <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/05/11/revue-de-presse-xebia-158/feed/</wfw:commentRss> <slash:comments>1</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/2010/01/18/revue-de-presse-xebia-143/</link> <comments>http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#comments</comments> <pubDate>Mon, 18 Jan 2010 18:55:11 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[dmServer]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[HornetQ 2.0]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Nexus]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Sonatype]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3835</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII dm Server 2.0 transféré de SpringSource à Eclipse HornetQ 2.0, un véritable renouveau ? Nexus sous license GPL: Sonatype explique son choix Agilité Le rôle des leaders dans une équipe agile RIA Le nouveau jQuery est arrivé ! Survol 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&#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/2010/01/18/revue-de-presse-xebia-143/#dmServertransfrdeSpringSourceE">dm Server 2.0 transféré de SpringSource à Eclipse</a></li><li><a
href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#HornetQunvritablerenouveau">HornetQ 2.0, un véritable renouveau ?</a></li><li><a
href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#NexussouslicenseGPLSonatypeexp">Nexus sous license GPL: Sonatype explique son choix</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#Lerledesleadersdansunequipeagi">Le rôle des leaders dans une équipe agile</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#LenouveaujQueryestarriv">Le nouveau jQuery est arrivé !</a></li><li><a
href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#SurvoldelagalaxieFlex">Survol de la galaxie Flex.</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="dmServertransfrdeSpringSourceE"></a>dm Server 2.0 transféré de SpringSource à Eclipse</h4><p>SpringSource annonce cette semaine <a
href="http://blog.springsource.com/2010/01/12/dm-server-2-0-0-released/" title="la finalisation de dm Server 20" >la finalisation de dm Server 2.0</a>. Il s&#8217;agit là d&#8217;une mise à jour importante qui agit principalement sur la réduction des nuisances causées au développeur de par la nature même d&#8217;OSGi. En effet, si beaucoup peuvent s&#8217;accorder sur le fait que la modularité dynamique peut constituer un intérêt sur de nombreux projets, c&#8217;est le coût en nuisances et en lourdeurs qui fait que cette solution n&#8217;est toujours pas très populaire au sein des applications d&#8217;entreprise. L&#8217;enjeu est donc crucial puisqu&#8217;il s&#8217;agit maintenant pour SpringSource de rendre attractif son serveur modulaire pour les entreprises. Un an et demi après le lancement du projet l&#8217;évolution de cette version 2.0 sera donc à suivre&#8230;</p><p>Parallèlement, SpringSource <a
href="http://blog.springsource.com/2010/01/12/dm-server-project-moves-to-eclipse-org/" title="annonce le transfert" >annonce le transfert</a> de dm Server au sein de la fondation Eclipse. Il tiendra alors le rôle d&#8217;implémentation de référence de la spécification BluePrint OSGi 4.2 <a
href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#OSGi" title="rcemment finalise" >récemment finalisée</a>. Tout comme le travail de simplification apporté à la nouvelle version, la standardisation permettra de rassurer les entreprises sur la pérennité de la technologie proposée par dm Server, qui restait jusqu&#8217;alors propriétaire.</p><h4><a
name="HornetQunvritablerenouveau"></a>HornetQ 2.0, un véritable renouveau ?</h4><p>Pour mémoire, <a
href="http://jboss.org/hornetq/" title="HornetQ" >HornetQ</a> est le nouveau nom de JBoss messaging. En bref, c&#8217;est pour le moment un projet Open Source sans support ayant vocation à s&#8217;intégrer dans le futur aux produits d&#8217;entreprise RedHat. <a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#JBossHornetQ" title="Nous en parlions dj en aout lanne dernire" >Nous en parlions déjà en aout l&#8217;année dernière</a>. La <em>roadmap</em> visait alors clairement la mise à disposition d&#8217;une API de <em>messaging</em> RESTful. Malheureusement, il n&#8217;y en a même pas l&#8217;ombre pour le moment et cela reste dans la <em>roadmap</em>. Gageons que quelques problèmes d&#8217;architecture accompagnés de bugs bloquants ont empêché le développement de cette nouvelle fonctionnalité.</p><p>L&#8217;annonce reprend principalement la précédente et ne liste rien de neuf par rapport à Aout 2009. Mais s&#8217;il y a bien dans le <a
href="https://jira.jboss.org/jira/browse/HORNETQ?report=com.atlassian.jira.plugin.system.project:changelog-panel" title="Jira du projet" >Jira du projet</a> un grand nombre de bugs corrigés, c&#8217;est surtout la maturité du source qui a grandi.<br
/> Malgré tout, la bonne nouvelle est que JBoss espère bien pouvoir l&#8217;intégrer dans sa ligne produit et que RedHat continue l&#8217;investissement sur le projet.</p><h4><a
name="NexussouslicenseGPLSonatypeexp"></a>Nexus sous license GPL: Sonatype explique son choix</h4><p><a
href="http://nexus.sonatype.org/" title="Nexus" >Nexus</a> est le gestionnaire de dépôts Maven développé par Sonatype. La version 1.0 est sortie à l&#8217;été 2008 sous la licence GPL. Il faut croire que Sonatype a fait face à de nombreuses critiques car la société vient de publier sur son blog un post intitulé &laquo;&nbsp;<a
href="http://www.sonatype.com/people/2010/01/why-we-chose-the-gpl-for-nexus/" title="Why we chose the GPL for Nexus" >Why we chose the GPL for Nexus</a>&nbsp;&raquo; lui permettant d&#8217;argumenter son choix. Alors quelles furent ces raisons ?<br
/> Le &laquo;&nbsp;problème&nbsp;&raquo; de <a
href="http://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU" title="la GPL" >la GPL</a> est qu&#8217;elle force à redonner à la communauté les changements effectués dans le source au cas où le logiciel obtenu est redistribué. Dans le cas spécifique de Nexus, Sonatype explique que le produit était vu dès l&#8217;origine comme un produit commercial, sans question d&#8217;open source. Puis, trouvant le processus de développement plus fun, intéressant et plus productif, couplé au fait que l&#8217;équipe voulait &laquo;&nbsp;protéger son investissement&nbsp;&raquo;, il fut décidé de passer en Open Source. Sonatype est franc sur ce dernier point et affirme l&#8217;avoir toujours été.<br
/> Ensuite, la société explique les idées qui guident généralement ses choix de licence:</p><ul><li>L&#8217;<a
href="http://fr.wikipedia.org/wiki/Affero_General_Public_License" title="Affero GPL" >Affero GPL</a> ne permet pas aux utilisateurs de développer des extensions, même à usage interne, sans avoir à redistribuer les sources. Dans le cas de Nexus, cela aurait sans doute impacté négativement son adoption.</li><li>Sonatype considère que, pour un projet open source, passer d&#8217;une licence donnée à une licence plus restrictive n&#8217;est pas correct. On se souvient que certains on déjà réalisé cette transition en s&#8217;attirant alors <a
href="http://www.extjs.com/forum/showthread.php?t=33096" title="des critiques dutilisateurs" >des critiques d&#8217;utilisateurs</a>. Sonatype déclare que ce ne sera pas leur cas.</li><li>La documentation, elle, est soumise à un principe différent. En effet, la compagnie pense que celle-ci constitue une bonne partie de la plus-value apportée. Ainsi, ils ne veulent pas voir de concurrents se servir de leur travail. C&#8217;est pourquoi ils ont choisi la licence <a
href="http://creativecommons.org/licenses/by-nc-nd/3.0/deed.fr" title="Creative Common 30 BYNDNC" >Creative Common 3.0 BY-ND-NC</a> interdisant à quiconque de modifier cette documentation.</li></ul><p>Au final, cet article est passionnant dans la mesure où il nous permet de bien appréhender le raisonnement derrière le choix d&#8217;une License pour des produits très répandus dans l&#8217;écosystème Java. Nous les utilisons tous les jours sans forcément nous poser de questions. Pourtant, pour certains clients, il peut être important de garder fermées leurs sources. Après, savoir si c&#8217;est une réelle nécessité ou un simple état d&#8217;esprit difficile à changer est une autre histoire !</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Lerledesleadersdansunequipeagi"></a>Le rôle des leaders dans une équipe agile</h4><p><a
href="http://blog.mountaingoatsoftware.com/the-role-of-leaders-on-a-self-organizing-team" title="Mike Cohn" >Mike Cohn</a>, auteur de nombreux livres sur l&#8217;agilité et membre fondateur de <a
href="http://www.agilealliance.org/" title="lAlliance Agile" >l&#8217;Alliance Agile</a>, revient sur le rôle des managers au sein d&#8217;une organisation de type agile. Un des principes forts des méthodes agiles est la mise en place d&#8217;une équipe auto-organisée, où il n&#8217;y a théoriquement plus de chef de projet. Cependant, Mike nous averti qu&#8217;une auto-organisation ne veut pas dire les développeurs font tout ce qu&#8217;ils veulent. Au contraire, Mike explique que des managers ont tout à fait leur rôle à jouer dans ce type d&#8217;organisation. Ainsi, il développe l&#8217;idée d&#8217;une influence subtile et indirecte des managers sur l&#8217;équipe.<br
/> C&#8217;est alors au fur et à mesure des challenges, des échecs et réussites que l&#8217;équipe évolue d&#8217;elle-même vers l&#8217;organisation la plus appropriée. Les managers sont néanmoins là pour poser certaines limites et contraintes.<br
/> A la fin de son article, Mike nous présente un exemple concret d&#8217;un scrum master au prise avec un développeur, qui est un peu trop solitaire, et nous expose comment il pourrait résoudre ce problème de manière subtile. Le scrum master peut être alors vu comme un agitateur au sein de l&#8217;équipe pour l&#8217;aider à devenir plus agile. Et, c&#8217;est là l&#8217;un des plus gros challenges d&#8217;un scrum master, qui consiste à naviguer entre un subtil mélange de contrôle et d&#8217;influence.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="LenouveaujQueryestarriv"></a>Le nouveau jQuery est arrivé !</h4><p>Un an jour pour jour (ou presque) après la <a
href="http://blog.xebia.fr/2009/01/19/revue-de-presse-xebia-92/#SortieduframeworkJavaScriptJQu" title="sortie de jQuery 1.3" >sortie de jQuery 1.3</a>, voici venir la nouvelle mouture du framework qui nous arrive dans une <a
href="http://jquery14.com/day-01" title="version 1.4" >version 1.4</a>. Le détail complet des nouveautés se trouve sur cette <a
href="http://jquery14.com/day-01" title="page" >page</a>. Le mot d&#8217;ordre : <em>performance</em> !</p><p>L&#8217;API a subit une réécriture complète. Un des points marquants  est la fonction <code>live()</code>, déjà présente dans la version précédente, qui supporte désormais tous les évènements Javascript <em>(click, change&#8230;)</em>. Pour ce qui est des nouveautés au niveau de l&#8217;API, on retiendra plus particulièrement :</p><ul><li><code>contains()</code> : vérifie l&#8217;existence d&#8217;un nœud DOM dans un autre nœud DOM,</li><li><code>isEmptyObject()</code> et <code>isPlainObject()</code> :  vérifie si un objet est vide ou existant <em>(new Object ou {})</em>,</li><li><code>detach()</code> : supprime du DOM un set d&#8217;éléments,</li><li><code>focusin()</code> et <code>focusout()</code> : ajoute un événement de type focus,</li><li><code>clearQueue()</code> : supprime de la pile les éléments qui n&#8217;ont pas encore été lancés,</li><li><code>delay()</code> : définit un <em>timer</em> pour l&#8217;exécution de certains éléments dans la pile,</li><li><code>toArray()</code> : récupère tous les éléments du conteneur jQuery dans un tableau.</li></ul><p>Côté performance, on peut noter une réelle <a
href="http://www.flickr.com/photos/jeresig/4271690739/" title="amélioration" >amélioration</a> pour les méthodes <em>remove</em>, <em>html</em> et <em>empty</em>. Un gros travail a donc été effectué au niveau des méthodes de manipulation du DOM. Il en va de même pour la gestion des <a
href="http://www.flickr.com/photos/jeresig/4271691147/" title="attributs et des proprits css" >attributs et des propriétés css</a>.</p><p>Pour le téléchargement de la librairie production <em>(minifié et GZippé)</em> ou développement <em>(code non compressé)</em> ou pour consulter la documentation, je vous renvoie directement sur la <a
href="http://jquery.com/" title="home page" >home page</a> du site. Et pour les fans de CheatSheet <em>(comme moi <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</em>, la version 1.4 est déjà disponible au format <a
href="http://www.futurecolors.ru/jquery/" title="HTML" >HTML</a>, <a
href="http://www.futurecolors.ru/jquery/jquery.cheatsheet.1.4.pdf" title="PDF" >PDF</a> ou <a
href="http://www.futurecolors.ru/jquery/jquery.cheatsheet.1.4.png" title="PNG" >PNG</a>.</p><p>Et si vous appréciez jQuery et le travail de toute l&#8217;équipe qui se trouve derrière, vous pouvez faire une <a
href="http://jquery14.com/donate" title="donation de 20$ et ainsi recevoir un eBook jQuery gratuitement" >donation de 20$ et ainsi recevoir un eBook jQuery gratuitement</a> !</p><h4><a
name="SurvoldelagalaxieFlex"></a>Survol de la galaxie Flex.</h4><p>Vous voulez passer à Flex, mais vous ne savez pas par où commencer ? Suivant l&#8217;adage &laquo;&nbsp;Pour bien travailler il faut avoir de bons outils&nbsp;&raquo;, InfoQ propose <a
href="http://www.infoq.com/news/2010/01/state-of-flex-dev-tools" title="un survol de la galaxie Flex" >un survol de la galaxie Flex</a>. Sans rentrer dans les détails de l&#8217;article, on notera :</p><ul><li>les IDE : le célèbre FlexBuilder, mais aussi IntelliJ, ou encore des environnements plus exotiques comme Amethyst, EnsembleTofino et FlashDevelop. Nous n&#8217;avons pas (encore) eu l&#8217;occasion d&#8217;essayer ces derniers, mais si l&#8217;un de nos lecteurs possède une expérience avec ces outils, qu&#8217;il n&#8217;hésite pas à la partager !</li><li>les frameworks : là encore, outre les classiques (PureMvc, Cairgorm&#8230;), quelques petits nouveaux tentent d&#8217;émerger, dont deux qui nous ont interpellé : Ruboss (pour intégrer Ruby on Rails) et Prana (IoC). Nous espérons bientôt les tester.</li><li>les outils de support du developpement : là encore, Flex commence à se doter d&#8217;un arsenal conséquent : tests unitaires (FlexMonkey), couverture de code (FlexCover), tests de GUI (RIATest). Il ne reste plus qu&#8217;à monter une usine logicielle digne de ce nom en agrégeant ces utilitaires.</li><li>les outils d&#8217;intégration dans l&#8217;entreprise : là encore, un certains nombre de ces outils sont archi-connus (comme BlazeDs), et d&#8217;autres plus confidentiels, peuvent présenter un réel intérêt : intégration à Struts (FxStruts), AmFast (Python)&#8230; Nous aurons probablement l&#8217;occasion d&#8217;en reparler.</li></ul><p>Au final, InfoQ propose un survol relativement complet et permet de découvrir de nouveaux outils. Ne reste plus qu&#8217;à les tester, ou à recueilli vos retours d&#8217;expérience !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/</link> <comments>http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#comments</comments> <pubDate>Mon, 30 Nov 2009 17:30:44 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[closure]]></category> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[Devoxx]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Lucene]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[OSGi]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3455</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII SpringSource et Oracle ensemble pour l&#8217;OSGi d&#8217;entreprise Le coin de la technique Lucene passe à Java 5 Mark Reinhold justifie l&#8217;introduction des closures Patterns NoSQL Evènements de notre communauté en France et à l&#8217;étranger Devoxx 2009 : le bilan Actualité [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#SpringSourceetOracleensemblepo">SpringSource et Oracle ensemble pour l&#8217;OSGi d&#8217;entreprise</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#LucenepasseJava">Lucene passe à Java 5</a></li><li><a
href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#MarkReinholdjustifielintroduct">Mark Reinhold justifie l&#8217;introduction des <em>closures</em></a></li><li><a
href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#PatternsNoSQL">Patterns NoSQL</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#Devoxxlebilan">Devoxx 2009 : le bilan</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SpringSourceetOracleensemblepo"></a>SpringSource et Oracle ensemble pour l&#8217;OSGi d&#8217;entreprise</h4><p>Adrian Colyer, SpringSource, <a
href="http://blog.springsource.com/2009/11/24/gemini-project-proposal-at-eclipse-org/" title="a annonc" >a annoncé</a> la création d&#8217;un nouveau projet au sein de la fondation Eclipse : Gemini. Il s&#8217;agit d&#8217;un sous-projet d&#8217;Eclipse Runtime qui a pour but de réunir l&#8217;ensemble des implémentations de référence des spécifications OSGi liées au monde de l&#8217;entreprise. Il s&#8217;agit d&#8217;un effort commun de SpringSource et d&#8217;Oracle.</p><p>Deux composants fondamentaux sont apportés par SpringSource :</p><ul><li>Gemini Web Container : il permet le fonctionnement d&#8217;un conteneur de Servlets dans un environnement OSGi. Cette implémentation est actuellement utilisée dans SpringSource dm Server et est donc prévue pour fonctionner sur Tomcat. Mike Keith, Oracle, <a
href="http://www.eclipse.org/forums/index.php?t=msg&#038;th=158265&#038;start=0&#038;S=f24c757f3b4f75d223bf59aad88061b0" title="assure" >assure</a> que l&#8217;adaptation pour Jetty arrivera par la suite grâce à une collaboration avec l&#8217;équipe de ce projet.</li><li>Gemini Blueprint Service : il s&#8217;agit de <a
href="http://www.springsource.org/osgi" title="Spring Dynamic Modules" >Spring Dynamic Modules</a>. Ce projet, qui a fortement inspiré la spécification du <em>Blueprint Service</em> intégré à OSGi 4.2, devient logiquement son implémentation de référence.</li></ul><p>Il est important de noter qu&#8217;Adryan Colyer explique que SpringSource continuera désormais le développement de ces deux projets directement au sein de la fondation Eclipse et non plus en interne.</p><p>Oracle, pour sa part, apporte plusieurs implémentations de référence pour des RFC supplémentaires <a
href="http://modualrit.blogspot.com/2009/08/purity-or-compromise.html" title="non intgres  la spcification OSGi 42" >non intégrées à la spécification OSGi 4.2</a> : RFC 98 (transactions), RFC 122 (database access), RFC 139 (JMX integration), RFC 142 (JNDI integration), RFC 143 (JPA integration), RFC 146 (JCA integration).<br
/> Mike Keith indique qu&#8217;EclipseLink est à même de fonctionner correctement avec OSGi depuis longtemps, mais qu&#8217;il n&#8217;implémentait pas JPA lorsque cette intégration a été mise en œuvre au sein du projet. Par conséquent, une adaptation est nécessaire pour passer à la RFC 143, afin d&#8217;assurer une intégration JPA standard.</p><p>Alors que la spécification 4.2 a été finalisée <a
href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#OSGi" title="il y a 2 mois" >il y a 2 mois</a>, les implémentations de référence étaient toujours attendues. Cette réunification des implémentations liées a l&#8217;OSGi d&#8217;entreprise au sein d&#8217;un même projet Eclipse est une excellente nouvelle : elle met en avant la standardisation dont on pourra désormais bénéficier pour les développements intégrant OSGi dans les applications JEE. Mais cela suffira-t-il à démocratiser OSGi en entreprise ?!</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="LucenepasseJava"></a>Lucene passe à Java 5</h4><p>L&#8217;équipe du projet Lucene <a
href="http://lucene.apache.org/java/docs/index.html#25+November+2009+-+Lucene+Java+3.0.0+available" title="annonce la sortie de Lucene 3.0" >annonce la sortie de Lucene 3.0</a>. Comme <a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#Lucenevolueetprparelavenir" title="nous lexpliquions prcedemment" >nous l&#8217;expliquions précedemment</a>, cette version marque une évolution majeure puisqu&#8217;elle est la première a nécessiter Java 5.0 au minimum.</p><p>L&#8217;API bénéficie donc désormais de l&#8217;ensemble des améliorations du langage de Java 5.0 dont les <em>generics</em>, le <em>varargs</em>, les <em>enums</em> et l&#8217;<em>autoboxing</em>.</p><p>Tempérons cette annonce : l&#8217;API Lucene n&#8217;a pas été refondue, il ne s&#8217;agit que de quelques améliorations visant à la rendre <em>type-safe</em>. Citons par exemple :</p><ul><li>Apparition d&#8217;<em>enums</em> <code>BooleanClause.Occur</code>, <code>Field.Index</code>, <code>Field.Store</code> et <code>Field.TermVector</code> ; ces concepts étaient jusqu&#8217;alors représentées sous forme de constantes <em>type-safe</em>.</li><li>La méthode <code>getFields()</code> de la classe <code>Document</code> retourne désormais une <code>List&lt;Fieldable&gt;</code> alors qu&#8217;elle retournait une simple <code>List</code> jusqu&#8217;alors.</li><li>La classe <code>Term</code> implémente désormais <code>Comparable&lt;Term&gt;</code> et non plus simplement <code>Comparable</code>.</li></ul><p>Ces changements légers décevront peut-être certains utilisateurs lassés par l&#8217;API vieillissante de Lucene, mais on appréciera toutefois la facilité de migration, puisqu&#8217;il s&#8217;agira la plupart du temps de supprimer quelques <em>casts</em> (l&#8217;équipe Lucene cite <a
href="http://lucene.apache.org/java/3_0_0/changes/Changes.html" title="quelques cas  surveiller" >quelques cas à surveiller</a> lors de la migration).</p><p>Cette nouvelle version, qui apporte par ailleurs quelques modifications mineures, conclut donc un cycle d&#8217;évolutions importantes sur le projet Lucene.</p><h4><a
name="MarkReinholdjustifielintroduct"></a>Mark Reinhold justifie l&#8217;introduction des <em>closures</em></h4><p>C&#8217;était l&#8217;Annonce de cette édition de Devoxx, <a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#JDKJEEetMavenlesannoncesdeDevo" title="lapparition des closures en Java 7" >l&#8217;apparition des <em>closures</em> en Java 7</a>. Mark Reinhold revient, sur <a
href="http://blogs.sun.com/mr/entry/closures">son blog</a>, sur les raisons à l&#8217;origine de cette petite bombe.<br
/> Il justifie cette évolution majeure du langage par la nécessité pour Java de tirer partie des nouvelles générations de processeurs, multi-cœurs.<br
/> Jusqu&#8217;ici, pour exploiter cette puissance, il fallait utiliser des <em>Parallel Array</em> et tout le code inutile nécessaire à leur fonctionnement. Les <em>closures</em> permettent de supprimer ce code, et il est temps de les introduire en Java.<br
/> Java doit se concentrer sur deux fonctionnalités clés : la syntaxe littérale, et les fonctions typées. L&#8217;arrivée des <em>closures</em> requiert deux autres évolutions de Java : les conversions, et l&#8217;extensibilité des méthodes.<br
/> Il est temps pour Mark Reinhold d&#8217;oublier <a
href="http://www.javaworld.com/javaworld/jw-06-2008/jw-06-closures.html" title="les querelles" >les querelles</a>. Sun spécifiera et implémentera un premier jet des <em>closures</em> pour le JDK 7. Cela permettra une expérimentation à grande échelle, et si tout se passe bien, cela conduira à une JSR de modification du langage, qui pourra être incluse dans Java SE 7.<br
/> La tâche est immense et Mark Reinhold appelle bien évidement toutes les bonnes volontés à contribuer.</p><p>Bien au-delà de la manipulation du <em>multi-threading</em>, les <em>closures</em> pourraient permettre une simplification des APIs courantes. Cette perspective semble essentielle à Mark Reinhold qui ne pouvait attendre le JDK 8 pour une nouvelle tentative, dans 3 à 4 ans&#8230;</p><h4><a
name="PatternsNoSQL"></a>Patterns NoSQL</h4><p>Nous vous parlions récemment <a
href="http://blog.xebia.fr/2009/11/09/revue-de-presse-xebia-133/#LemouvementNoSQLdiviseetintrig" title="dans une revue de presse" >dans une revue de presse</a> et <a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-nosql-avec-hbase/" title="un article" >un article</a> du mouvement NoSQL, qui se caractérise par &laquo;&nbsp;une absence de requête et par un relâchement des caractéristiques ACID propres aux RDBMS&nbsp;&raquo;. Ricky Ho, architecte chez Adobe, <a
href="http://horicky.blogspot.com/2009/11/nosql-patterns.html" title="revient sur son blog" >revient sur son blog</a> sur les caractéristiques communes de plusieurs technologies permettant de &laquo;&nbsp;faire du NoSQL&nbsp;&raquo;, et extrait quelques patterns récurrents. Ne vous arrêtez pas à la mise en page étriquée de l&#8217;article, car la description est très complète. Ricky Ho y explore successivement:</p><ul><li>Les types de noeud possibles (physiques et virtuels) ainsi que leur fonctionnement.</li><li>Le partitionnement des données.</li><li>La réplication de ces données, ainsi que le maintien de leur consistance.</li><li>La gestion des pannes.</li></ul><p>On notera quand même que l&#8217;une des solutions retenue pour le stockage des données reste&#8230; une base de donnée relationnelle ! <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> Humour mis à part, une telle formalisation de patterns est vraiment bienvenue dans un environnement aussi émergeant.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Devoxxlebilan"></a>Devoxx 2009 : le bilan</h4><p>Nous concluons aujourd&#8217;hui notre série de billets sur Devoxx 2009. Ces 5 jours passés à Anvers furent riches en informations et en rencontres et nous souhaitions vous les faire partager.</p><p>A l&#8217;heure du bilan, voici ce que nous retiendrons de cette édition :</p><ul><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#JDKJEEetMavenlesannoncesdeDevo" title="Les annonces concernant JDK 7 JEE 6 et Maven 30" >Les annonces concernant JDK 7, JEE 6 et Maven 3.0</a>.</li><li>Le succès de JEE 6 : toutes les sessions sur le sujet ont fait salle comble.</li><li>La place réservée à la nouvelle plateforme Flash d&#8217;Adobe, présente au <em>keynote</em> et dans de nombreuses sessions ; il est intéressant de noter que cette place correspond exactement à celle occupée par JavaFX lors de la précédente édition.</li><li>L&#8217;omniprésence de Scala ; au-delà des sessions qui lui étaient consacrées, il était cité dans beaucoup d&#8217;autres présentations lorsqu&#8217;il était question de DSL par exemple.</li><li>L&#8217;intérêt persistant de la communauté pour le Cloud Computing. Ce nouveau concept a rencontré un large succès à Devoxx.</li></ul><p>Pour rentrer plus en détails dans les enseignements de cette conférence, vous pouvez désormais retrouver l&#8217;intégralité de nos billets Devoxx :</p><ul><li><a
href="http://blog.xebia.fr/2009/11/17/devoxx-jour-1-adobe-university/" title="Devoxx  Jour 1  Adobe University" >Devoxx &#8211; Jour 1 &#8211; Adobe University</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-applications-robustes-avec-amazon-ec2/" title="Devoxx  Jour 1  Applications robustes avec Amazon EC2" >Devoxx &#8211; Jour 1 &#8211; Applications robustes avec Amazon EC2</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-kanban-in-action/" title="Devoxx  Jour 1  Kanban in action" >Devoxx &#8211; Jour 1 &#8211; Kanban in action</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-jsf-2/" title="Devoxx  Jour 1  JSF 2" >Devoxx &#8211; Jour 1 &#8211; JSF 2</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-nosql-avec-hbase/" title="Devoxx  Jour 1  NoSQL avec HBase" >Devoxx &#8211; Jour 1 &#8211; NoSQL avec HBase</a></li><li><a
href="http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/" title="Devoxx  Jour 2  Google App Engine" >Devoxx &#8211; Jour 2 &#8211; Google App Engine</a></li><li><a
href="http://blog.xebia.fr/2009/11/19/devoxx-jour-2-les-effets-avec-flex-4/" title="Devoxx  Jour 2  Les effets avec Flex 4" >Devoxx &#8211; Jour 2 &#8211; Les effets avec Flex 4</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-hibernate-search/" title="Devoxx  Jour 2  Hibernate Search" >Devoxx &#8211; Jour 2 &#8211; Hibernate Search</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-java-fx-the-developer-guide/" title="Devoxx  Jour 2  Java FX The developer guide" >Devoxx &#8211; Jour 2 &#8211; Java FX The developer guide</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-soa-en-pratique/" title="Devoxx  Jour 2  SOA en pratique" >Devoxx &#8211; Jour 2 &#8211; SOA en pratique</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-scala-actors/" title="Devoxx  Jour 2  Scala Actors" >Devoxx &#8211; Jour 2 &#8211; Scala Actors</a></li><li><a
href="http://blog.xebia.fr/2009/11/24/devoxx-jour-3-spring-actionscript/" title="Devoxx  Jour 3  Spring Actionscript" >Devoxx &#8211; Jour 3 &#8211; Spring Actionscript</a></li><li><a
href="http://blog.xebia.fr/2009/11/24/devoxx-jour-3-scalatest/" title="Devoxx  Jour 3  ScalaTest" >Devoxx &#8211; Jour 3 &#8211; ScalaTest</a></li><li><a
href="http://blog.xebia.fr/2009/11/24/devoxx-jour-3-la-keynote/" title="Devoxx  Jour 3  La keynote" >Devoxx &#8211; Jour 3 &#8211; La keynote</a></li><li><a
href="http://blog.xebia.fr/2009/11/25/devoxx-jour-3-jee6/" title="Devoxx  Jour 3  JEE6" >Devoxx &#8211; Jour 3 &#8211; JEE6</a></li><li><a
href="http://blog.xebia.fr/2009/11/27/devoxx-jour-4-maven-reloaded/" title="Devoxx  Jour 4  Maven Reloaded" >Devoxx &#8211; Jour 4 &#8211; Maven Reloaded</a></li><li><a
href="http://blog.xebia.fr/2009/11/27/devoxx-jour-4-java-performance-tuning/" title="Devoxx  Jour 4  Java Performance Tuning" >Devoxx &#8211; Jour 4 &#8211; Java Performance Tuning</a></li><li><a
href="http://blog.xebia.fr/2009/11/30/devoxx-jour-4-integration-pour-le-web-avec-ibeans/" title="Devoxx  Jour 4  Intgration pour le Web avec iBeans" >Devoxx &#8211; Jour 4 &#8211; Intégration pour le Web avec iBeans</a></li><li><a
href="http://blog.xebia.fr/2009/11/27/devoxx-jour-5-projet-lombok/" title="Devoxx  Jour 5  Projet Lombok" >Devoxx &#8211; Jour 5 &#8211; Projet Lombok</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Rencontre Spring &#8211; Spring 3.0 &#8211; Interview avec Arjen Poutsma</title><link>http://blog.xebia.fr/2009/11/04/rencontre-spring-spring-3-0-interview-avec-arjen-poutsma/</link> <comments>http://blog.xebia.fr/2009/11/04/rencontre-spring-spring-3-0-interview-avec-arjen-poutsma/#comments</comments> <pubDate>Wed, 04 Nov 2009 21:09:07 +0000</pubDate> <dc:creator>Erwan Alliaume</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Spring 3.0]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3065</guid> <description><![CDATA[Comme l&#8217;année dernière, j&#8217;ai assisté ce mercredi 4 novembre aux rencontres Spring Paris. Cette journée est l&#8217;occasion de rencontrer des acteurs de renom de la communauté Spring venant présenter leurs solutions et partager leur vision de l&#8217;écosystème Java. Les grands thèmes du jour : Présentation de Spring 3.0 et de la roadmap SpringSource. Amélioration de [...]]]></description> <content:encoded><![CDATA[<p>Comme l&#8217;année dernière, j&#8217;ai assisté ce mercredi 4 novembre aux <a
href="http://www.rencontres-spring.com/" title="rencontres Spring Paris" >rencontres Spring Paris</a>. Cette journée est l&#8217;occasion de rencontrer des acteurs de renom de la communauté Spring venant présenter leurs solutions et partager leur vision de l&#8217;écosystème Java.</p><p>Les grands thèmes du jour :</p><ul><li>Présentation de Spring 3.0 et de la <em>roadmap</em> SpringSource.</li><li>Amélioration de la productivité avec Spring ROO.</li><li>Standardisation  et positionnement stratégique et face à Java EE.</li><li>Cloud Computing avec le nouveau mouvement lancé par le rachat de SpringSource par VMWare.</li></ul><p>Dans ce cadre, j&#8217;ai eu l&#8217;occasion de mener une interview d&#8217;<a
href="http://www.springsource.com/people/apoutsma" title="Arjen Poutsma" >Arjen Poutsma</a> en marge des présentations (merci Michael). Ce billet retrace ce que j&#8217;ai retenu de cet entretien.</p><p><em>Arjen Poutsma est le créateur de Spring WS, projet sur lequel il est d&#8217;ailleurs toujours largement impliqué. C&#8217;est également le second committeur Spring 3.0 avec Juergen Hoeller, qui était venu l&#8217;an passé pour présenter le sujet.</em></p><p><em>Toutes les nouveautés Spring 3.0 abordées lors de la conférence n&#8217;ont pas été traitées lors de l&#8217;entretien. Cet article n&#8217;a pas pour but de les cataloguer, même si certaines d&#8217;entre elles y sont abordées &#8230;</em></p><p><strong>Date de sortie de Spring 3.0 et le</strong> <strong><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#SpringOneGXcestpartipourSpring" title="communiqu de presse" ><strong>communiqué de presse</strong></a></strong> <strong>récemment publié</strong></p><p>À l&#8217;heure actuelle, le développement de l&#8217;ensemble des fonctionnalités que SpringSource voulait inclure dans Spring 3.0 est terminé, le code est complet et pleinement documenté. C&#8217;est <em>Spring 3.0 RC1</em> est sortie en octobre.</p><p>Avant la sortie officielle prévue en décembre, une RC2 va sortir pour corriger les quelques <a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#SpringOneGXcestpartipourSpring" title="jira restes ouvertes" >jira restées ouvertes</a></p><p><em>Vous pouvez commander votre version Spring 3.0 pour Noël.</em></p><p><strong>Spring 3.0, ce n&#8217;est pas un petit projet</strong></p><p>Le projet est porté par Juergen Hoeller et Artjen Poutsma, qui en sont également les deux plus gros contributeurs. En plus de cela, de nombreux committeurs externes  (environ 15 personnes) ont participé au projet, mais pas à plein temps. Le projet a commencé il y maintenant plus d&#8217;un an, ce n&#8217;est pas un petit projet. En plus des nouvelles fonctionnalités offertes par Spring 3.0, le gros du travail a résidé dans la réécriture et la simplification de Spring core. Un temps non négligeable a été passé pour aligner ou préparer les mises à jour des autres modules Spring. Un travail d&#8217;uniformisation des numéros de version est également en cours pour simplifier les interdépendances entre les différents projets. En effet, il devenait difficile de dire que Spring WS 1.5.8 est compatible avec Spring 2.5.x alors que la 1.5.9 n&#8217;est compatible qu&#8217;avec Spring 3.0. À l&#8217;image de Spring Sécurité, les principaux modules Spring devraient donc passer rapidement en 3.0.</p><p><strong>Migrez à Spring 3.0 en 2 minutes chrono</strong></p><p>Durant les présentations, Adrian Coyler et Arjen ont tous deux affirmé que Spring 3.0 était 100% rétro-compatible avec Spring 2.5. Arjen a même décrit le processus de migration comme une simple mise à jour de jars. Au-delà de la jolie phrase marketing qui fait sourire, un effort particulier a été apporté à la conservation de cette rétro-compatibilité. Les fonctionnalités Core restent complètement rétro-compatibles, voire inchangées. En revanche, si vous migrez un gros projet, vous tomberez probablement dans des cas d&#8217;utilisation spécifiques vous obligeant à modifier quelques petites choses. Difficile d&#8217;assurer que l&#8217;ensemble des cas d&#8217;utilisation sont rétro-compatibles (vu leur nombre), même si la plus grosse partie des ré-écritures concerne des classes de <em>tambouille</em> internes à Spring.</p><p><em>Message personnel pour Julien (Dubois) : Arjen m&#8217;a proposé d&#8217;offrir gracieusement tes services à mon client si la migration me prend plus d&#8217;une journée. On lance les paris ? <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </em></p><p>D&#8217;autre part, Spring prônant le <em>pruning</em>, certaines fonctionnalités <em>deprecated</em> vont être supprimées. On salue le choix de SpringSource d&#8217;alléger son <em>framework</em> et de tout faire pour ne pas traîner du code <em>legacy</em> sur plusieurs générations (contrairement à d&#8217;autres).</p><p>Spring 3.0 nécessite a minima un JDK 5. Un sondage à été réalisé lors de la présentation et seule une personne de l&#8217;assemblée déclarait toujours utiliser le JDK 1.4. Le timing semble plutôt bon, le JDK 5 de Sun étant déjà passé au statut <em>end of life</em> récemment.</p><p><strong>Un <em>Expression Langage</em> intégré à Spring core, plus costaud qu&#8217;il en a l&#8217;air  &#8230;</strong></p><p>L&#8217;une des grandes nouveautés de Spring 3.0 concerne la gestion d&#8217;un langage d&#8217;expression dans la déclaration des <em>beans</em>. Cette fonctionnalité est rendue possible par la modification du cœur de Spring. Si son utilisation reste pour le moment un peu timide, c&#8217;est l&#8217;une des briques nécessaires à certaines évolutions de modules annexes (Web). Il est vrai que nous ne sommes pas habitués à utiliser un tel mécanisme, le besoin peut même vous sembler limité, et pourtant &#8230; C&#8217;est également ce que je m&#8217;étais dit lors de la présentation de Juergen il y a un an . Depuis, chez mon client, je me suis surpris à constater à plusieurs reprises que cette solution m&#8217;aurait été utile.</p><p>L&#8217;utilisation des EL++ dans la déclaration de vos <em>beans</em> (XML ou annotations) vous permet d&#8217;une part de simplifier votre configuration et d&#8217;éviter de dupliquer certaines constantes dans vos fichiers de configurations. Cela dit, ce qui est décrit comme constante peut à ce jour déjà être centralisé par l&#8217;intermédiaire de variables gérées par le <code>PropertyPlaceholderConfigurer</code> et remplacées à l&#8217;initialisation du contexte. L&#8217;utilisation des EL++ vous permet ce même résultat <strong>directement au runtime</strong> ! Différentes classes scopées &#8216;prototype&#8217; peuvent donc être instanciées avec des paramètres différents.</p><p>La fonctionnalité vous permet d&#8217;accéder <em>out-of-the-box</em> à différents contextes : systemProperties, systemEnvironment, request, session ou à toute propriété de <em>beans</em> déclarés dans Spring. Notez qu&#8217;il est possible d&#8217;enrichir ceux-ci et d&#8217;y <strong>exposer vos propres contextes</strong>. Un mécanisme de SPI vous permet d&#8217;enrichir cette fonctionnalité et vous permet d&#8217;exposer vos propres contextes. A quoi cela sert il ? Il est par exemple possible, moyennant un peu de code, d&#8217;accéder via EL à une valeur stockée en base de données.</p><p><strong>Le support REST, une surcouche à Spring MVC</strong></p><p>Le support REST a été développé par Arjen, dans la mesure où il est également le fondateur de Spring WS. Nous aurions d&#8217;ailleurs pu penser qu&#8217;il se serait basé sur le fonctionnement de Spring WS pour réaliser cette fonctionnalité. Arjen m&#8217;a d&#8217;ailleurs dit avoir imaginé une telle solution avant de rebrousser chemin : le support de REST se rapproche beaucoup plus de Spring MVC que de Spring WS.</p><p>Le support REST de Spring 3.0 ne repose sur aucune implémentation existante. Ce n&#8217;est donc ni du <a
href="http://www.restlet.org/" title="RESTlet" >RESTlet</a>, ni du <a
href="http://jcp.org/en/jsr/detail?id=311" title="JAXRS" >JAX-RS</a>, c&#8217;est du 100% SpringSource et l&#8217;une des fonctionnalités proposées par Spring MVC.</p><p>Côté client, le nouveau <code>RestTemplate</code> vous permet d&#8217;accéder très facilement à n&#8217;importe quel service REST.</p><p><strong>Les meta-annotations, c&#8217;est bien mais pas universel</strong></p><p>Arjen a présenté le mécanisme de méta-annotation proposé dans Spring 3.0. Il s&#8217;agit d&#8217;offrir la possibilité de regrouper plusieurs annotations en une seule. Il est ainsi possible de regrouper certaines caractéristiques par type de composant. Voici l&#8217;exemple d&#8217;une annotation <code>@MyKindOfComponent</code>, qu&#8217;il est possible d&#8217;utiliser sur n&#8217;importe quelle classe. Celle ci possédera ainsi toutes les caractéristiques des différentes annotations.</p><pre class="brush: java; title: ; notranslate">
@Service
@Scope(&quot;request&quot;)
@Transactionnal
@Retention(RetentionPolicy.RUNTIME)
Public @interface MyKindOfComponent {
  ...
}
</pre><p>Au delà de la tentative d&#8217;apaisement des anti-annotations, ce mécanisme peut vous permettre de tagger certains types de classes selon vos besoins. Vous pourrez ainsi facilement retrouver ces classes via un aspect posé sur votre annotation personnalisée.</p><p><strong>Spring 3.1 sera pleinement compatible Java EE 6</strong></p><p>L&#8217;annonce a été faite lors des conférences par Arjen, et modéré ensuite par Alexis Moussine-Pouchkine lors de sa présentation sur « Java EE vs Spring » qui espère que SpringSource implémentera a minima le profil Web des spécifications Java EE 6. Un subset de fonctionnalités sera choisi pour être intégré à Spring 3.1. Il s&#8217;agira des fonctionnalités qui ont un intérêt direct pour Spring. Il serait un peu farfelu de penser que Spring implémentera Java EE 6 dans son intégralité. La liste de ces fonctionnalités n&#8217;est d&#8217;ailleurs à ce jour pas fixée définitivement. Certaines comme JPA 2.0 et JSF 2.0 sont déjà compatibles et intégrées à Spring 3.0. Les autres attendront la prochaine <em>release</em>.</p><p>Cela mis à part, Arjen se dit intéressé par certaines fonctionnalités de Java EE 6. Une configuration de Spring MVC simplifiée par l&#8217;utilisation des <a
href="http://blog.xebia.fr/2009/09/15/servlet-3-0-les-3-points-marquants/" title="Web Fragments de Servlet 30" >Web Fragments de Servlet 3.0</a> est envisagée. L&#8217;autre fonctionnalité que j&#8217;ai évoquée est l&#8217;exécution asynchrone d&#8217;<em>handlers</em> Spring MVC : Arjen s&#8217;est montré également intéressé même s&#8217;il m&#8217;a dit qu&#8217;il existait déjà des moyens d&#8217;avoir un mécanisme similaire (j&#8217;ai cherché, mais pas trouvé&#8230;).</p><p><strong>Pour finir, deux sujets un peu moins &#8216;Spring 3.0&#8242; &#8230;</strong><br
/> Ayant effectué quelques applications Android, j&#8217;aurais aimé avoir une solution me permettant d&#8217;accéder le plus simplement possible à des services REST / MVC &#8230; Du coup, je lui ai demandé si, en interne, ils étaient intéressés par cette petite communauté de développeurs, et s&#8217;ils avaient des idées pour faciliter la création d&#8217;applications Android. Evidemment, je n&#8217;attendais pas beaucoup de cette question ; la réponse a ressemblé à cela : un <em>restTemplate</em> côté Android ou une version <em>light</em> de Spring remoting est une bonne idée &#8230; qu&#8217;il faudra creuser &#8230; par vous-même <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><p>Enfin, l&#8217;interview s&#8217;est terminée par une question personnelle. Quel est, selon lui, le sujet le plus <em>hype</em> du moment : les langages de scripting sur JVM à la Groovy, les nouvelles techniques de concurrence avec les acteurs Scala, la modularisation et le rechargement d&#8217;applications, ou le Cloud Computing &#8230; C&#8217;est ce dernier qui a sa préférence.</p><p>Merci à Arjen pour sa présentation et pour le temps consacré à l&#8217;interview.<br
/> Au plaisir de renouveler cela l&#8217;année prochaine.</p><div
align="center"> <a
href="http://twitter.com/ealliaume" ><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/04/twitter4.png"  alt="twitter erwan alliaume" title="twitter erwan alliaume" border="0" /><br
/> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/04/rencontre-spring-spring-3-0-interview-avec-arjen-poutsma/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Java Cloud : après Tomcat, c&#8217;est au tour de Jetty !</title><link>http://blog.xebia.fr/2009/09/03/java-cloud-apres-tomcat-cest-au-tour-de-jetty/</link> <comments>http://blog.xebia.fr/2009/09/03/java-cloud-apres-tomcat-cest-au-tour-de-jetty/#comments</comments> <pubDate>Thu, 03 Sep 2009 17:24:25 +0000</pubDate> <dc:creator>Cyrille Le Clerc</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Jetty]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[Tomcat]]></category> <category><![CDATA[VMWare]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2774</guid> <description><![CDATA[Après Tomcat qui rentrait cet été de plain-pied dans l&#8217;univers du Java Platform as a Service avec le mariage de SpringSource à VMWare et à CloudFoundry, c&#8217;est au tour de l&#8217;autre moteur léger de servlets, Jetty/Webtide, de s&#8217;adosser à un acteur du Cloud Computing, Intalio, pour développer son offre. Une reconnaissance méritée C&#8217;est une très [...]]]></description> <content:encoded><![CDATA[<p>Après Tomcat qui rentrait cet été de plain-pied dans l&#8217;univers du Java Platform as a Service avec le mariage de SpringSource à VMWare et à CloudFoundry, c&#8217;est au tour de l&#8217;autre moteur léger de servlets, Jetty/<a
href="http://www.webtide.com/">Webtide</a>, de s&#8217;adosser à un acteur du Cloud Computing, <a
href="http://www.intalio.com">Intalio</a>, pour développer son offre.</p><p><strong>Une reconnaissance méritée</strong><br
/> C&#8217;est une très belle opportunité pour Jetty qui était jusqu&#8217;à présent beaucoup plus embarqué que Tomcat par des grands projets de Cloud Computing (Google App Engine, Hadoop, Gigaspace XAP, etc) mais n&#8217;avait pas constitué sa propre offre.</p><p><strong>Sur les pas d&#8217;Amazon ?</strong><br
/> Le mariage d&#8217;Intalio avec Webtide est assez différent de celui de SpringSource avec VMWare et Cloud Foundry. Alors que la deuxième union concerne des spécialistes de l&#8217;infrastructure, Intalio est lui issu de l&#8217;univers des applications CRM et s&#8217;étend vers les infrastructures de Cloud Computing comme l&#8217;a fait Amazon auparavant.</p><p><strong>Des serveurs J2EE <em>lourds</em> absents</strong><br
/> Nous remarquerons à l&#8217;occasion que les serveurs J2EE <em>heavyweight</em> se font très discrets dans cette période d&#8217;avalanche d&#8217;annonces sur Java Platform as a Service, on peut s&#8217;attendre à ce qu&#8217;ils répondent sur cette tendance qui va bouleverser les modes de fonctionnement dans les data centers et menacer leurs parts de marché.</p><p><strong>Ils en parlent</strong></p><ul><li><a
href="http://www.intalio.com/news/press-releases/intalio-acquires-webtide-developer-of-the-jetty-application-server/">L&#8217;annonce officielle par Intalio</a></li><li><a
href="http://blogs.webtide.com/gregw/entry/urbanization_in_the_noosphere_intalio">L&#8217;annonce par Greg Wilkins, co-fondateur de Webtide</a></li><li>InfoQ : <a
href="http://www.infoq.com/news/2009/09/intalio-acquires-webtide">Intalio acquires Webtide</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/09/03/java-cloud-apres-tomcat-cest-au-tour-de-jetty/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/</link> <comments>http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#comments</comments> <pubDate>Mon, 24 Aug 2009 16:35:23 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[ChromeDevTools]]></category> <category><![CDATA[CloudFoundry]]></category> <category><![CDATA[Ehcache]]></category> <category><![CDATA[Hadoop]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[Swing]]></category> <category><![CDATA[Terracotta]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2686</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII SpringSource lance CloudFoundry SOA David Chappell et Ted Neward : SOA est un échec &#8230; mais aussi un progrès Le coin de la technique Acquisition d&#8217;Ehcache par Terracotta, nécessaire et suffisant ? ChromeDevTools Pas de Swing Application Framework dans 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/08/24/revue-de-presse-xebia-123/#SpringSourcelanceCloudFoundry">SpringSource lance CloudFoundry</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#DavidChappelletTedNewardSOAest">David Chappell et Ted Neward : SOA est un échec &#8230; mais aussi un progrès</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#AcquisitiondEhcacheparTerracot">Acquisition d&#8217;Ehcache par Terracotta, nécessaire et suffisant ?</a></li><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#ChromeDevTools">ChromeDevTools</a></li><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#PasdeSwingApplicationFramework">Pas de Swing Application Framework dans le JDK 7</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/24/revue-de-presse-xebia-123/#HadoopWorld">Hadoop World 2009</a></li><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#SortieleseptembredeGoogleWaveP">Sortie le 30 septembre de Google Wave Preview </a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SpringSourcelanceCloudFoundry"></a>SpringSource lance CloudFoundry</h4><p>Rod Johnson l&#8217;annonçait jeudi dernier sur son <a
href="http://blog.springsource.com/2009/08/19/cloud-foundry/" title="blog" >blog</a>, l&#8217;éditeur fait ses premiers pas dans le monde du cloud computing. Il s&#8217;agit en effet d&#8217;une interface web qui ne manque pas de rappeller Google App Engine permettant d&#8217;installer des applications Java sur le nuage. Dans cette première version, on nous propose de déployer des applications hébergées sur le fameux Spring Tc Server, avec out of the box, la supervision Hyperic, la possibilité d&#8217;utiliser une base de données MySQL, et évidemment le support de Grail, si cher à Rod.</p><p>Au menu, bien évidemment le support et la répartition automatique de la montée en charge. Pour le moment, le tout est déployé sur Amazon EC2, mais Rod espère bien le voir déployé prochainement sur vSphere (la solution de cloud computing de VMWare). Nous souhaitons longue vie à ce nouveau produit de SpringSource qui confirme une fois encore sa montée en puissance. Notez, tout de même pour information que c&#8217;est Chris Richardson et son équipe qui s&#8217;est chargé de la réalisation de <a
href="http://www.cloudfoundry.com/" title="CloudFoundry" >CloudFoundry</a>.</p><p><a
href="http://blog.xebia.fr/2009/08/19/java-platform-as-a-service-springsource-accelere/" title="Larticle" >L&#8217;article</a> de Cyrille Le Clerc sur SpringSource et Java Platform As A Service vous permettra d&#8217;y voir un peu plus clair sur la stratégie poursuivie par SpringSource.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="DavidChappelletTedNewardSOAest"></a>David Chappell et Ted Neward : SOA est un échec &#8230; mais aussi un progrès</h4><p>David Chappell a retrouvé une <a
href="http://www.davidchappell.com/blog/2009/08/is-soa-failing-2008-interview.html" title="discussion quil a eu avec Ted Neward en 2008 sur SOA" >discussion qu&#8217;il a eu avec Ted Neward en 2008 sur SOA</a>.</p><p>Au-delà de l&#8217;évocation des liens entre Service Oriented Architecture <em>(SOA)</em>, Software as a Service <em>(SaaS)</em> et Cloud computing, nous retiendrons de cet échange : <strong>SOA a échoué à tenir sa double promesse &laquo;&nbsp;Réutilisation et agilité&nbsp;&raquo;</strong>.<br
/> L&#8217;agilité est une forme de réutilisation puisqu&#8217;elle permet de créer de nouveaux services en assemblant facilement des services existant. La <a
href="http://blog.xebia.fr/2009/04/16/soa-du-composant-au-service-la-reutilisabilite/" title="rutilisation des services mtiers" >réutilisation des services métiers</a> a échoué, et par effet de bord, l&#8217;agilité n&#8217;a pas été obtenue. La réutilisation des services métiers est analogue à la réutilisation des objets métiers à la fin des années 90.<br
/> La cause de cet échec, pour SOA comme pour les objets métier, n&#8217;est pas technique mais principalement humaine. Les organisations n&#8217;ont pas créé les conditions pour inciter les équipes à partager leur travail ni à réutiliser le travail des autres <em>(Cf. &laquo;&nbsp;<a
href="http://blog.xebia.fr/2008/05/16/les-10-pieges-de-la-soa-10-le-syndrome-not-invented-here/" title="Le syndrome Not Invented Here" >Le syndrome Not Invented Here</a>&nbsp;&raquo; et &laquo;&nbsp;<a
href="http://blog.xebia.fr/2008/06/24/les-10-pieges-de-la-soa-02-propriete-des-composants-et-financement-au-projet/" title="Proprit des composants et Financement au projet" >Propriété des composants et Financement au projet</a>&laquo;&nbsp;)</em>.</p><p>En revanche, la réutilisation des objets techniques a réussi, les frameworks .Net et Java EE en sont des exemples. De plus, l&#8217;orienté objet a convaincu comme paradigme de programmation. Pour SOA, la réutilisation de services techniques comme la gestion de l&#8217;identité ou la couche d&#8217;accès aux données <em>basiques</em> fonctionne.</p><p>Il s&#8217;agit donc d&#8217;un échec du SOA tel qu&#8217;on nous l&#8217;a promis mais en revanche d&#8217;un succès de l&#8217;approche par service.</p><p>Pour ce qui est des <strong>ESB</strong>, il s&#8217;agit principalement d&#8217;un <strong>coup marketing</strong> des éditeurs de solutions d&#8217;intégrations mais <strong>aussi d&#8217;une évolution des paradigmes d&#8217;intégration</strong> : l&#8217;intégration par services à succédé à l&#8217;intégration par base de données.</p><p><strong>Alors SOA est un échec ? Oui si l&#8217;on regarde les promesses initiales qui n&#8217;ont pas été tenues ; non si l&#8217;on voit les transformations orientées service qu&#8217;elle apporte.</strong></p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="AcquisitiondEhcacheparTerracot"></a>Acquisition d&#8217;Ehcache par Terracotta, nécessaire et suffisant ?</h4><p>Le teaser largement propagé via Twitter et les différents blogs des acteurs de Terracotta est tombé. Terracotta a <a
href="http://www.terracotta.org/web/display/orgsite/Terracotta+Acquires+Ehcache" title="fait l'acquisition" >fait l&#8217;acquisition</a> d&#8217;un des frameworks open-source les plus populaires du marché : Ehcache. Drôle de teasing, sous la forme d&#8217;un <a
href="http://gregluck.com/blog/archives/2009/08/ehcache_joins_w.html" title="hash md5" >hash md5</a>, pour une drôle d&#8217;annonce. Ce mariage ressemble plus à un arrangement entre amis qu&#8217;a un véritable rachat :</p><ul><li>Ehcache et Terracotta fonctionnent conjointement depuis bien longtemps.</li><li>Ehcache est porté par une seule personne : Greg Luck.</li><li>La vente de support Ehcache ne fonctionne pas vraiment, <a
href="http://www.linuxworld.com/news/2009/081809-terracotta-boosts-app-scaling-prowess-with.html?fsrc=rss-linux-news" title="dixit Greg Luck" >dixit Greg Luck</a>.</li><li>Le code source de Ehcache est très léger, et sa partie la plus complexe, le cache distribué, concurrence avec une grande simplicité Terracotta.</li></ul><p>Alors, pourquoi avoir racheté Ehcache ?</p><p>Selon certains analystes,  après le rachat de SpringSource, VMWare a la volonté d&#8217;élargir son portefeuille d&#8217;outils et de middleware Java, et Terracotta serait pressenti. C&#8217;est en tout cas l&#8217;hypothèse mise en avant par quelques gaillards de Terracotta (encore une fois, merci Twitter). Notre sentiment, trop de bruit pour que cela soit d&#8217;actualité. Par contre, il nous semble clair que Terracotta désire se faire racheter. Et pour cela, plusieurs problèmes doivent être réglés :</p><ul><li>Malgré les différentes versions, Terracotta suscite des résistances, en cause son approche bas niveau (JVM / Bytecode) qui freine bon nombre d&#8217;utilisateurs. D&#8217;ailleurs, Terracotta ne fonctionne pas avec toutes les JVM.</li><li>L&#8217;utilisation de ce framework n&#8217;est pas transparente, quoi qu&#8217;en disent les documentations. Il est facile de se tromper sur le choix des objets à partager et les poses de lock. Tout cela fait qu&#8217;à l&#8217;utilisation, la mise en place de celui-ci est tout sauf triviale.</li></ul><p>Et c&#8217;est là qu&#8217;Ehcache intervient !</p><ul><li>Mis en lumière par le cache L2 d&#8217;hibernate, Ehcache fonctionne également avec d&#8217;autres produits star comme Spring, Alfresco et Liferay. Il est devenu l&#8217;une des apis de cache les plus utilisées par les développeurs. On parle de plusieurs centaines de milliers de projets utilisant celui-ci. Avec ce rachat, Terracotta espère se rapprocher davantage de cette communauté en s&#8217;appuyant sur la bonne image d&#8217;Ehcache pour rassurer les développeurs.</li><li>D&#8217;autre part, Terracotta gonfle sa stack logiciel et propose dans son portefeuille un mécanisme de cache distribué alternatif plus haut niveau.</li></ul><p>Au final, petite annonce ? Pas si sûr ! Terracotta signe ici un joli coup de communication et se met dans les meilleures conditions en vue d&#8217;un éventuel prochain rachat.</p><h4><a
name="ChromeDevTools"></a>ChromeDevTools</h4><p>Pour ceux qui ne sont pas à l&#8217;aise avec le débogage Javascript par l&#8217;interface de <a
href="https://addons.mozilla.org/fr/firefox/addon/1843" title="Firebug" >Firebug</a> ou tout simplement ceux qui souhaitent débugger intégralement leur application dans Eclipse, y compris le Javascript client, voici un petit outil (développé par Google) qui vous le permettra : le <a
href="http://code.google.com/p/chromedevtools/" title="Google Chrome Dev Tools" >Google Chrome Dev Tools</a> (par l&#8217;<a
href="http://eclipse.dzone.com/news/debug-javascript-eclipse" title="Eclipse Zone" >Eclipse Zone</a>).</p><p>Le projet se compose du <a
href="http://code.google.com/p/chromedevtools/wiki/ChromeDevToolsSdk" title="Chrome Dev Tools SDK" >Chrome Dev Tools SDK</a>, API Java permettant à une application en mode debug de communiquer avec le navigateur Google Chrome (localhost en TCP/IP) , et de l&#8217;<a
href="http://code.google.com/p/chromedevtools/wiki/EclipseDebugger" title="Eclipse Debugger" >Eclipse Debugger</a>, le plugin Eclipse qui vous permettra de débugger votre application.</p><p>Ce dernier propose entre autres :</p><ul><li>Breackpoints</li><li>Watches</li><li>Step in / over / into</li><li>Évaluation d&#8217;une sélection de texte</li><li>Évaluation sur <code>mouse hover</code></li><li>Exceptions reportées dans la vue <code>Error Log</code></li></ul><p>Côté mise en place, il vous faudra au minimum, comme vous pouvez vous en doutez, un navigateur Google Chrome en version 3.0.189.0 (actuellement en beta) et un Eclipse 3.4.2. L&#8217;installation du plugin se fera par l&#8217;Update Site avec cette <a
href="http://chromedevtools.googlecode.com/svn/update/dev/" title="URL" >URL</a>.<br
/> Il vous faudra ensuite lancer votre Chrome avec le paramètre <code>--remote-shell-port=9222</code> (ou le port de votre choix) et définir, dans le menu <code>Debug Configurations</code> d&#8217;Eclipse, une nouvelle <code>Chromium Javascript</code> configuration avec le port spécifié pour Chrome. Et à partir de là, à vous les breakpoints et le debug de votre application dans Eclipse !</p><h4><a
name="PasdeSwingApplicationFramework"></a>Pas de Swing Application Framework dans le JDK 7</h4><p>Il y a quelques mois <a
href="http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#EnfinuneroadmapdtaillepourleJD" title="nous vous parlions" >nous vous parlions</a> de la disponibilité d&#8217;une <em>roadmap</em> détaillée pour le JDK 7. Elle incluait entre autre la <a
href="http://www.jcp.org/en/jsr/detail?id=296" title="JSR-296 (Swing Application Framework)" >JSR-296 (Swing Application Framework)</a>, une spécification destinée à simplifier le développement d&#8217;applications Swing grâce à :</p><ul><li>Des annotations <code>@Action</code> pour déclarer les actions Swing plus facilement qu&#8217;en sous-classant <code>AbstractAction</code> puis en redéfinissant la méthode <code>actionPerformed()</code></li><li>Gestion de l&#8217;enregistrement de l&#8217;état des fenêtres à la fermeture de l&#8217;application</li><li>Simplification de la gestion des ressources</li><li>Gestion du cycle de vie de l&#8217;application</li></ul><p>Les apports sont intéressants car répondent bien aux réalités des projets Swing courants, mais n&#8217;y répondent que partiellement. En effet il aurait été interessant de voir se créer une synergie avec la <a
href="http://www.jcp.org/en/jsr/detail?id=330" title="JSR-330 (Dependency Injection for Java)" >JSR-330 (Dependency Injection for Java)</a> afin d&#8217;apporter l&#8217;injection de dépendance aux applications client lourds. De plus, ce <em>framework</em> ne simplifie pas la définition des interfaces en Swing, opération se révélant souvent assez laborieuse en raison d&#8217;APIs vieillissantes et probablement trop bas niveau.</p><p>Alexander Potochkin <a
href="http://weblogs.java.net/blog/alexfromsun/archive/2009/08/saf_and_jdk7.html" title="nous apprend" >nous apprend</a> maintenant que cette JSR ne sera pas prête dans les temps pour la <em>roadmap</em> prévue et qu&#8217;en conséquence son intégration au JDK 7 est annulée. Dans ces conditions, les apports du JDK 7 à Swing seront quasi nuls, ce qui constituera une réponse bien peu satisfaisante <a
href="http://blog.xebia.fr/2009/03/02/revue-de-presse-xebia-98/#LinitiativeSwingcritique" title="aux dbats ayant anim" >aux débats ayant animé</a> cette communauté il y a quelques mois.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="HadoopWorld"></a>Hadoop World 2009</h4><p>La société <a
href="http://cloudera.com/" title="Cloudera" >Cloudera</a>, spécialisée dans le support aux utilisateurs de <a
href="http://hadoop.apache.org/" title="Hadoop" >Hadoop</a>, a annoncé la première conférence mondiale consacré à Hadoop : <a
href="http://cloudera.com/hadoop-world-nyc" title="Hadoop World" >Hadoop World</a>. Cette conférence se tiendra à New-York City en octobre de cette année. Elle est soutenue par des sponsors de taille comme IBM, Intel et Yahoo.</p><p>Le nombre de candidat à la prise de parole est tellement important que l&#8217;agenda n&#8217;est pas encore fixé. Le thème sera &laquo;&nbsp;Hadoop is everywhere&nbsp;&raquo;, on aura donc droit à des sujets aussi bien sur des applications utilisant déjà Hadoop, que sur les implications coté administration de parc.</p><p>Les inscriptions sont ouvertes &#8230;</p><h4><a
name="SortieleseptembredeGoogleWaveP"></a>Sortie le 30 septembre de Google Wave Preview</h4><p>Présenté il y a quelques mois comme une évolution majeure de notre façon de communiquer en ligne, Google Wave sera bientôt disponible au public. 100 000 utilisateurs sont attendus une fois le service ouvert.</p><p>A l&#8217;heure actuelle, les développeurs qui ont pu testés ont eu de gros problèmes de disponibilité de la plateforme. Sur <a
href="http://www.infoq.com/news/2009/08/wave-preview-opens" title="InfoQ" >InfoQ</a>, on apprend que pour le 30 septembre, l&#8217;objectif du responsable technique de Wave API, Douwe Osinga, est bien sûr d&#8217;améliorer la stabilité du système mais aussi d&#8217;ajouter des fonctionnalités à l&#8217;API. Par conséquent, il ne leur restait que peu de temps pour stabiliser le bac à sable.</p><p>Dans les nouvelles fonctionnalités, l&#8217;accent a été mis sur l&#8217;API liée aux <a
href="http://code.google.com/apis/wave/extensions/robots/index.html" title="robots" >robots</a> qui est à présent ouverte.  Grâce aux robots, on peut répondre de manière applicative à des évènement sur la wave, ce qui permet d&#8217;interagir avec les autres participants, ou d&#8217;échanger des informations avec des systèmes extérieurs.</p><p>Si vous souhaitez être averti de l&#8217;ouverture du service, <a
href="https://services.google.com/fb/forms/wavesignup/" title="inscrivezvous" >inscrivez-vous</a>. Vous pouvez même écrire un message d&#8217;encouragement à l&#8217;équipe de Google Wave. Ils en auront certainement besoin pendant le moins prochain&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Java Platform As A Service : SpringSource accélère</title><link>http://blog.xebia.fr/2009/08/19/java-platform-as-a-service-springsource-accelere/</link> <comments>http://blog.xebia.fr/2009/08/19/java-platform-as-a-service-springsource-accelere/#comments</comments> <pubDate>Wed, 19 Aug 2009 14:29:46 +0000</pubDate> <dc:creator>Cyrille Le Clerc</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Amazon]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[EC2]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2679</guid> <description><![CDATA[SpringSource continue à dérouler son plan de Java Platform As A Service avec le rachat de Cloud Foundry, le spécialiste de plate-forme Apache / Tomcat / MySQL sur Amazon EC2. Rod Johnson annonce dans SpringSource Launches Enterprise Java Cloud que SpringSource offrira à ses clients non seulement la possibilité de déployer sur le cloud public [...]]]></description> <content:encoded><![CDATA[<p>SpringSource continue à dérouler son plan de <strong>Java Platform As A Service</strong> avec le rachat de <a
href="http://www.cloudfoundry.com/">Cloud Foundry</a>, le spécialiste de plate-forme Apache / Tomcat / MySQL sur Amazon EC2.</p><p>Rod Johnson annonce dans <a
href="http://blog.springsource.com/2009/08/19/cloud-foundry/">SpringSource Launches Enterprise Java Cloud</a> que SpringSource offrira à ses clients non seulement la possibilité de déployer sur le cloud public Amazon EC2 mais aussi et surtout sur des clouds privés.</p><p>Il s&#8217;agira vraisemblablement de la mutualisation de nos plates-formes Java actuelles avec un <em>chef d&#8217;orchestre</em> Hyperic et des serveurs tc Server (Tomcat augmenté de fonctionnalités d&#8217;administration) ; la JVM sera Sun HotSpot et l&#8217;OS de prédilection sera RehHat  Enterprise Linux <em>(RHEL)</em> même si Windows, Solaris et MacOSX seront proposés <em>(détails <a
href="http://static.springsource.com/projects/tc-server/6.0/getstart/rgssupplat.html">ici</a>)</em>.</p><p>Il ne nous faudra que quelques minutes pour déployer de nouvelles applications web ou pour ajuster les ressources CPU et mémoire allouée à une application par l&#8217;ajout ou la suppression de nœuds dans un cluster.</p><p>Techniquement, il n&#8217;y a pas de rupture par rapport à ce qu&#8217;offrent depuis longtemps les serveurs JEE &laquo;&nbsp;lourds&nbsp;&raquo; <em>(IBM WebSphere, Oracle/BEA Weblogic, RedHat JBoss App Server ou Sun Glassfish)</em>.</p><p>Cependant, les mentalités ont changé, les esprits sont marqués par la simplicité d&#8217;exploitation des Public Clouds. Les équipes d&#8217;exploitation sont en train de se transformer, les processus s&#8217;allègent et l&#8217;offre <em>lightweight</em> de SpringSource tombe à point nommé.</p><p>Et la virtualisation matérielle dans tout ça ? Rod Johnson nous dit que la <strong>Tomcat Platform As A Service</strong> s&#8217;exécutera <em>&laquo;&nbsp;aussi sur vSphere&nbsp;&raquo;</em>, le produit phare de son récent acquéreur VMWare. La nuance est forte entre <em>&laquo;&nbsp;aussi sur&nbsp;&raquo;</em> et <em>&laquo;&nbsp;principalement sur&nbsp;&raquo;</em>.<br
/> Nous le verrons à l&#8217;usage, le duo RHEL / Sun JVM sera la couche d&#8217;abstraction suffisante pour exécuter la plupart de nos applications Java. Le renfort de la virtualisation matérielle ne se justifiera que dans un nombre limité de cas comme les serveurs J2EE s&#8217;avèrent rarement nécessaire face aux simples Tomcat, Jetty ou Glassfish V3 &#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/19/java-platform-as-a-service-springsource-accelere/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/</link> <comments>http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/#comments</comments> <pubDate>Mon, 17 Aug 2009 16:04:56 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Apache HTTP Client]]></category> <category><![CDATA[CEP]]></category> <category><![CDATA[Complex Event Processing]]></category> <category><![CDATA[Coral8]]></category> <category><![CDATA[CouchDB]]></category> <category><![CDATA[Drools]]></category> <category><![CDATA[Esper]]></category> <category><![CDATA[iBatis]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Progress]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[StreamBase]]></category> <category><![CDATA[VMWare]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2642</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII VMWare &#8211; SpringSource, pourquoi ? Les acteurs du marché du Complex Event Processing Le coin de la technique iBatis suit les dernières tendances Java Apache HTTP Client 4.0 finalisé Tour d&#8217;horizon de CouchDB Actualité éditeurs / SSII VMWare &#8211; 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/08/17/revue-de-presse-xebia-122/#VMWareSpringSourcepourquoi">VMWare &#8211; SpringSource, pourquoi ?</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/#LesacteursdumarchduComplexEven">Les acteurs du marché du Complex Event Processing</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/#iBatissuitlesdernirestendances">iBatis suit les dernières tendances Java</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/#ApacheHTTPClientfinalis">Apache HTTP Client 4.0 finalisé</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/#TourdhorizondeCouchDB">Tour d&#8217;horizon de CouchDB</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="VMWareSpringSourcepourquoi"></a>VMWare &#8211; SpringSource, pourquoi ?</h4><p>Pourquoi VMWare a racheté SpringSource dont le métier et la culture sont si différents ? Pourquoi un tel prix ?</p><p>Cyrille Le Clerc <em>(Xebia)</em> propose son analyse du rachat de SpringSource par VMWare : <em>&laquo;&nbsp;<a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/" title="Pourquoi VMWare / SpringSource ? Virtualisation matérielle vs. Cloud" >Pourquoi VMWare / SpringSource ? Virtualisation matérielle vs. Cloud</a>&laquo;&nbsp;</em>.</p><h4><a
name="LesacteursdumarchduComplexEven"></a>Les acteurs du marché du Complex Event Processing</h4><p>Paul Vincent, Tibco, a diffusé <a
href="http://tibcoblogs.com/cep/2009/07/31/the-cep-market-2009-a-brief-history-lesson/" title="un récapitulatif" >un récapitulatif</a> des différents acteurs du marché du <a
href="http://en.wikipedia.org/wiki/Complex_Event_Processing" title="Complex Event Processing" >Complex Event Processing</a> listant l&#8217;ensemble des éditeurs proposant des solutions classés par date d&#8217;arrivée sur ce marché.<br
/> Il y fait bien la distinction entre les produits se basant sur un système de requêtes temps réelles et ceux basés sur un système de règles.</p><p>Il est ainsi possible de visualiser l&#8217;arrivée successive des nombreux acteurs sur ce marché en pleine croissance. Par ailleurs on remarque qu&#8217;Esper est le seul moteur de requêtes CEP Open Source du marché tandis que Drools, grâce à sa récente version 5 est devenu l&#8217;unique moteur de règles CEP qui soit Open Source. Ces nouveaux entrants viennent ainsi perturber StreamBase, Coral8 et Progress sur leurs positions investies il y a plusieurs années.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="iBatissuitlesdernirestendances"></a>iBatis suit les dernières tendances Java</h4><p><a
href="http://ibatis.apache.org/" title="iBatis" >iBatis</a> est un <em>framework</em> Apache souvent positionné face aux solutions ORM telles qu&#8217;Hibernate. En effet il adopte une stratégie différente puisqu&#8217;il ne cherche pas à créer un modèle objet au dessus du modèle relationnel, mais plutôt à faire un <em>mapping</em> objet des données d&#8217;entrée et de sortie des requêtes SQL. Traditionnellement ce <em>mapping</em> se décrivait par un lot de fichiers XML de configuration.</p><p>Début 2007, l&#8217;équipe des développeurs d&#8217;iBatis a créé <a
href="http://opensource.atlassian.com/confluence/oss/display/IBATIS/iBATIS+3.0+Whiteboard" title="une page Wiki" >une page Wiki</a> pour recueillir les propositions pour une version 3.0 qui profiterait des nouveautés de Java 5 pour améliorer l&#8217;ergonomie de leur <em>framework</em>.</p><p>Après de longs débats, et développements, une série de 2 versions bêta <a
href="http://ibatis.apache.org/java.cgi" title="a été diffusé" >a été diffusé</a>. Une première version de <a
href="http://svn.apache.org/repos/asf/ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.pdf" title="documentation est galement disponible" >documentation est également disponible</a>, permettant de faire le tour des nouveautés les plus intéressantes :</p><ul><li>Ajout d&#8217;un <code>SelectBuilder</code> permettant de construire dynamiquement des requêtes SQL, remplissant ainsi un rôle similaire aux <em>Criterias</em> d&#8217;Hibernate. Ce <em>builder</em> offre aux développeurs un DSL interne très élégant basé sur une clause <code>import static</code> Java.</li><li>Configuration du <em>mapping</em> par annotations. On dispose ainsi d&#8217;annotations <code>@Insert</code>, <code>@Update</code>, <code>@Delete</code>, <code>@Select</code> et <code>@Result</code> à placer sur les Pojos. L&#8217;équipe iBatis reconnaît par contre la possible lourdeur de ce modèle de configuration lorsque des <em>mapping</em> très complexes doivent être définis.</li><li>Possibilité de créer des DAOs utilisant des <em>generics</em> en type de retour. Typiquement une méthode <code>listAllEmployees()</code> retournera un type <code>List&lt;Employee&gt;</code> et non plus un type <code>List</code>.</li></ul><p>iBatis répond à un besoin réel, car il propose une solution de persistance dont le niveau d&#8217;abstraction est intermédiaire entre JDBC et JPA. On ne peut donc que se réjouir de ce rafraichissement de l&#8217;API, l&#8217;alignant ainsi sur les tendances du moment dans le monde Java que sont les annotations, les DSLs, et autres interfaces simplifiés, qui permettent d&#8217;améliorer la productivité du développement.</p><h4><a
name="ApacheHTTPClientfinalis"></a>Apache HTTP Client 4.0 finalisé</h4><p>La refonte du client HTTP d&#8217;Apache <a
href="http://jakarta.apache.org/site/news/news-2007-q3.html" title="a été initiée il y a deux ans" >a été initiée il y a deux ans</a> avec l&#8217;arrivée d&#8217;une première version alpha. Un an après arrivait une première version bêta. Apache <a
href="http://hc.apache.org/news.html" title="annonce maintenant" >annonce maintenant</a> la disponibilité d&#8217;une version finalisée du projet.</p><p>Au fil des années un nombre croissant de projets se sont basés sur HTTP Client lui concédant ainsi une certaine omniprésence. Son intérêt par rapport au client HTTP standard de Java est d&#8217;offrir une plus grande richesse de fonctionnalités liées à une meilleure flexibilité d&#8217;utilisation.</p><p>Cette nouvelle version majeure est une réécriture totale du projet, expliquant donc son temps de gestation particulièrement long. L&#8217;architecture y est repensée pour offrir une meilleure modularité et des possibilités d&#8217;extensions supplémentaires. Le client est ainsi désormais constitué de deux modules :</p><ul><li><a
href="http://hc.apache.org/httpcomponents-core/index.html" title="HttpCore" >HttpCore</a> apporte les fonctionnalités fondamentales du protocole HTTP et offre le choix entre un modèle d&#8217;I/O bloquant ou non bloquant en s&#8217;appuyant sur NIO.</li><li><a
href="http://hc.apache.org/httpcomponents-client/index.html" title="HttpClient" >HttpClient</a> se base sur HttpCore pour offrir des fonctionnalités supplémentaires de HTTP telles que la gestion des <em>cookies</em> et l&#8217;authentification.</li></ul><p>Une documentation très complète est déjà disponible <a
href="http://hc.apache.org/httpcomponents-core/tutorial/html/" title="pour HttpCore" >pour HttpCore</a> comme <a
href="http://hc.apache.org/httpcomponents-client/index.html" title="pour HttpClient" >pour HttpClient</a>.</p><h4><a
name="TourdhorizondeCouchDB"></a>Tour d&#8217;horizon de CouchDB</h4><p>Une présentation de <a
href="http://couchdb.apache.org/" title="CouchDB" >CouchDB</a> par Jan Lehnardt, développeur sur le projet, lors du QCon de novembre 2008 vient <a
href="http://www.infoq.com/presentations/couchDB-from-10K-feet" title="dtre mise  disposition" >d&#8217;être mise à disposition</a>. Elle offre un aperçu global de CouchDB qui permettra de saisir l&#8217;ensemble de ses intérêts. Ainsi les principales caractéristiques de cette base de données mises en avant sont :</p><ul><li>Base de données orientée documents : les informations sont groupées par documents qui sont stockés de manière versionnée.</li><li><em>Optimistic locking</em> : CouchDB se base sur un numéro de version stocké au sein du document.</li><li>API Restful : les fonctions d&#8217;ajout, lecture, modification et suppression (CRUD) sont accessibles par une API Resful permettant ainsi une intégration triviale avec n&#8217;importe quel langage et plate-forme.</li><li><em>Views</em> : CouchDB n&#8217;offre pas de mécanisme de requête tel qu&#8217;on en trouve habituellement sur les bases de données relationnelles. Ici tout n&#8217;est que <em>vue</em> des documents générée dynamiquement par MapReduce.</li><li>Réplication et résistance aux crashs : CouchDB supporte un mécanisme de réplication <em>peer to peer</em> lui permettant d&#8217;offrir une haute disponibilité des données sans effort supplémentaire.</li></ul><p>Jan Lehnardt rappelle en outre que CouchDB est distribué sous licence Apache et que le projet est soutenu par IBM. Les lecteurs intéressés par CouchDB pourront également se tourner vers la <a
href="http://wiki.apache.org/couchdb/" title="documentation du projet" >documentation du projet</a> ou encore vers le livre qui <a
href="http://oreilly.com/catalog/9780596158163/" title="lui est consacré" >lui est consacré</a> chez O&#8217;Reilly, prévu pour novembre, et d&#8217;ores et déjà <a
href="http://books.couchdb.org/relax/" title="librement accessible en ligne" >librement accessible en ligne</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Pourquoi VMWare / SpringSource ? Virtualisation matérielle vs. Cloud</title><link>http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/</link> <comments>http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#comments</comments> <pubDate>Mon, 17 Aug 2009 11:16:27 +0000</pubDate> <dc:creator>Cyrille Le Clerc</dc:creator> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[Virtualisation]]></category> <category><![CDATA[VMWare]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2637</guid> <description><![CDATA[Pourquoi VMWare a racheté SpringSource dont le métier et la culture sont si différents ? Pourquoi un tel prix ? Mon analyse est que VMWare a racheté SpringSource parce que le cloud computing de forme Platform As A Service (PaaS) à la Google App Engine va bientôt mieux répondre que la virtualisation matérielle aux besoins [...]]]></description> <content:encoded><![CDATA[<p>Pourquoi VMWare a racheté SpringSource dont le métier et la culture sont si différents ? Pourquoi un tel prix ?</p><p>Mon analyse est que VMWare a racheté SpringSource parce que <strong>le cloud computing de forme Platform As A Service (PaaS) <em>à la Google App Engine</em> va bientôt mieux répondre que la virtualisation matérielle aux besoins d&#8217;optimisation des data centers Java</strong>. Selon l&#8217;adage &laquo;&nbsp;Si quelqu&#8217;un scie la branche sur laquelle je suis assis, mieux vaut que ce soit moi&nbsp;&raquo;, VMWare s&#8217;est dotée de l&#8217;expertise de SpringSource sur Tomcat et Hyperic.<br
/> Je parlerai des applications Java <em>légères</em> (Servlets, JDBC, JPA et JMS) qui sont aujourd&#8217;hui largement majoritaires dans nos data centers Java. Billy Newport, IBM WebSphere, <a
href="http://www.devwebsphere.com/devwebsphere/2009/08/why-java-is-so-important-to-vmware.html" title="reconnait quelles reprsentent 80 des cas" >reconnait qu&#8217;elles représentent 80% des cas</a>, SpringSource aurait sûrement des chiffres plus élevés.</p><ul><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#OptimiserlaCPUdesdatacenters">Optimiser la CPU des data centers</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#Lesatoutsdelavirtualisationmat">Les atouts de la virtualisation matérielle</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#Leslimitationsdelavirtualisati">Les limitations de la virtualisation matérielle pour Java</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#MutualisationenJavaDesimplesse">Mutualisation en Java : De simples serveurs Linux-Tomcat suffisent</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#AdaptationCPUetRAMenJavaLemodl">Adaptation CPU et RAM en Java : Le modèle &#8216;scale out&#8217;</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#VirtualisationmatrielUnmarchpl">Virtualisation matériel : Un marché plus concurrentiel et moins lucratif</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#OnesizedoesnotfitallConcilierv">One size does not fit all : Concilier virtualisation matérielle et cloud pour optimiser l&#8217;utilisation des data centers</a></li></ul><h4><a
name="OptimiserlaCPUdesdatacenters"></a>Optimiser la CPU des data centers</h4><p>Les data centers débordent, l&#8217;électricité manque, les climatisations saturent, les planchers s&#8217;effondrent, les racks sont pleins et pourtant, les serveurs ne font rien, les CPU ne sont utilisées qu&#8217;à quelques pourcents !<br
/> La virtualisation matérielle, dont VMWare est un des leaders, propose d&#8217;adresser ce problème en introduisant une couche d&#8217;abstraction appelée hyperviseur entre le matériel et le système d&#8217;exploitation : plusieurs instances de système d&#8217;exploitation s&#8217;exécutent ainsi sur la même machine.<br
/> Considérons 10 serveurs qui consomment chacun en moyenne 5% de CPU, la virtualisation matérielle permet de les regrouper sur une seule machine physique qui atteindrait alors un taux d&#8217;utilisation de l&#8217;ordre de 50%. Malgré la chute du prix de la RAM, la mémoire vive de ce serveur mutualisé risque fort d&#8217;être insuffisante, l&#8217;hyperviseur règlera ce problème en recourant à la pagination de la mémoire (swap) comme un système d&#8217;exploitation le fait déjà à son niveau.<br
/> Et si par malheur ces serveurs venaient à être sollicités en même temps et à saturer la machine qui les héberge, les solutions de virtualisation parviennent maintenant à déplacer certaines instances sur d&#8217;autres serveurs physiques de façon transparente, sans même arrêter le service.</p><h4><a
name="Lesatoutsdelavirtualisationmat"></a>Les atouts de la virtualisation matérielle</h4><p>Un atout essentiel de la virtualisation est le <strong>très faible coût d&#8217;adaptation des applications existantes</strong> puisqu&#8217;elles continuent à s&#8217;exécuter sur le même système d&#8217;exploitation avec le même voisinage. <strong>La virtualisation matérielle est transparente pour les applications</strong>, elle n&#8217;exige pas de changement de version du système d&#8217;exploitation, des librairies utilisées, des répertoires de travail ou des ports d&#8217;écoute.<br
/> Si une application est tellement exigeante qu&#8217;elle requiert une version de système d&#8217;exploitation dépassée ou qu&#8217;elle a été compilée avec la version très ancienne d&#8217;un driver de base de données, ce n&#8217;est pas grave. La virtualisation matérielle maintiendra cette application revêche isolée dans sa bulle et elle sera mutualisée comme les autres.<br
/> Un autre atout de la virtualisation est l&#8217;<strong>adaptation de la CPU et de la RAM allouée à chaque application selon ses besoins</strong>. De la même façon qu&#8217;un système d&#8217;exploitation sait allouer du temps CPU et de la RAM à une application qui a un pic d&#8217;utilisation, l&#8217;hyperviseur sait privilégier une instance parmi toutes celles qu&#8217;il exécute simultanément. Considérons 20 applications qui s&#8217;exécutent chacune sur un serveur bi-processeurs, la virtualisation matérielle permet de les regrouper sur un seul serveur quadri-processeurs et en cas de pic, allouer quatre processeurs à une seule application, le double de ce qu&#8217;offrait la solution non virtualisée.</p><h4><a
name="Leslimitationsdelavirtualisati"></a>Les limitations de la virtualisation matérielle pour Java</h4><p>La première limitation de Java à la virtualisation matérielle est la gestion de la mémoire par les machines virtuelles. Les JVM assument que toute la mémoire qu&#8217;on leur alloue est en RAM, elles accèdent indifféremment à tout cet espace mémoire et le parcourent intégralement très souvent pour les garbage collections. De ce fait, <strong>la performance des applications Java s&#8217;effondre dès que leur mémoire est paginée</strong>. Pire encore, certains composants comme les timers des caches ou des gestionnaires de transactions échouent lorsque les temps de réponse sont anormalement longs et les applications tombent alors en erreur.<br
/> Ce problème est d&#8217;autant plus crucial pour la virtualisation matérielle que, du fait des techniques de garbage collection, les <strong>JVM libèrent peu de mémoire quand les applications sont moins utilisées</strong>.<br
/> Par ailleurs, l&#8217;<strong>adaptation à l&#8217;exécution de la CPU et de la RAM allouée à chaque application selon ses besoins est inadaptée en Java.</strong><br
/> Le premier point bloquant est que l&#8217;espace mémoire utilisé par une JVM est défini au démarrage (Xmx) et ne peut changer lors de l&#8217;exécution. Ensuite, augmenter la puissance de traitement d&#8217;une application web Java nécessite non seulement d&#8217;allouer de la CPU et de la RAM, mais aussi de redimensionner les pools de threads http ou de connexions à la base de données ainsi que la taille de nombreux caches applicatifs (sessions http, objet venant de la base, etc).<br
/> Il faudrait donc que l&#8217;hyperviseur change les configurations Java, cela nécessite aujourd&#8217;hui d&#8217;interrompre le service pour redémarrer les applications. La promesse de transparence de la virtualisation matérielle devient caduque, le palliatif est d&#8217;avoir des middlewares qui interagissent avec la virtualisation matérielle.</p><h4><a
name="MutualisationenJavaDesimplesse"></a>Mutualisation en Java : De simples serveurs Linux-Tomcat suffisent</h4><p>Si certaines applications sont revêches à la mutualisation, Java fait plutôt preuve de très bon voisinage.<br
/> Une application Java est quasiment agnostique du système d&#8217;exploitation et des libraires qui l&#8217;entourent, il lui suffit d&#8217;un répertoire pour &#8216;dezipper&#8217; une JVM (<20 Mo), un moteur d'exécution (Tomcat < 5 Mo) et l'application.<br
/> Cette facilité d'installation est utilisée au quotidien. Nous développons sous Windows, MacOS ou Ubuntu pour déployer sur RHEL, AIX ou Solaris. Beaucoup d'équipes qui déploient en production sur un 'gros serveur' J2EE poussent même souvent plus loin cette portabilité en préférant utiliser pour le développement un serveur léger : Tomcat ou Jetty.<br
/> Pour ce qui est des problèmes de voisinage liés au port d'écoute ou aux répertoires utilisés, le monde Java, particulièrement sous Tomcat, a déjà banalisé ce partage en démarrant une instance de serveur par application web. De ce fait, il est fréquent de voir sur de simples serveurs bi-processeurs plus de quatre instances Tomcat démarrées.<br
/> Grâce à la faible adhérence d'une application Java à son environnement d'exécution et à l'habitude d'installer plusieurs serveurs « à la Tomcat », <strong>le niveau naturel de</strong> <strong>mutualisation des ressources CPU et RAM pour des applications Java est au dessus du système d&#8217;exploitation</strong>. La complexité et les coûts de la virtualisation matérielle sont très rarement justifiés avec Java. Une simple batterie de serveur Linux avec des serveurs Java &#8216;légers&#8217; comme Tomcat, Jetty ou Glassfish V3 répond au besoin d&#8217;optimisation des data centers Java en conciliant simplicité et faible coût.</p><h4><a
name="AdaptationCPUetRAMenJavaLemodl"></a>Adaptation CPU et RAM en Java : Le modèle &#8216;scale out&#8217;</h4><p>A la différence du modèle &#8216;scale-up&#8217; de la virtualisation matérielle qui augmente la CPU et la RAM d&#8217;une instance pour tenir la charge, Java utilise un modèle &#8216;scale-out&#8217; qui consiste à augmenter le nombre d&#8217;instances de l&#8217;application. Pour garantir la haute disponibilité ou la tenue à la charge, nous déployons des clusters de 2, plutôt 3, voire plus, instances de nos applications Java.<br
/> Déployer un nouveau nœud se fait aujourd&#8217;hui en moins d&#8217;une heure pour une équipe entrainée et ce délai va sensiblement diminuer. <strong>La roadmap de SpringSource Tc Server permettra d&#8217;adapter les ressources CPU et RAM d&#8217;une application Java en moins de 5 minutes d&#8217;ici deux ans au plus</strong> par simple démarrage ou arrêt de nœuds d&#8217;un cluster.<br
/> Les tâches à accomplir sont limitées pour SpringSource, IBM le propose depuis des années sur son sophistiqués mais complexe WebSphere eXtended Deployment et Gigaspace vient de l&#8217;introduire sur sa grille XAP sur un socle Jetty, SpringSource doit principalement ajouter un mécanisme de déploiement de Tomcat à l&#8217;agent Hyperic/AMS et améliorer le scripting de la gestion de configuration Tomcat du serveur d&#8217;administration Hyperic/AMS.</p><h4><a
name="VirtualisationmatrielUnmarchpl"></a>Virtualisation matériel : Un marché plus concurrentiel et moins lucratif</h4><p>En plus d&#8217;être remise en cause par la rupture technologique du cloud computing, la virtualisation matérielle est aujourd&#8217;hui confrontée à une baisse des marges. VMWare a connu des années très lucratives pendant lesquelles elle a été pionnière &#8216;pure player&#8217;. Certains disaient que « VMWare a porté sur architecture x86 la virtualisation des mainframes ».<br
/> Le marché de la virtualisation est aujourd&#8217;hui mature, les grands acteurs des systèmes d&#8217;exploitation se jettent dans la bataille et la concurrence s&#8217;annonce rude pour VMWare.<br
/> L&#8217;univers Windows est condamné à rétrécir mécaniquement pour VMWare avec l&#8217;arrivée en force de Microsoft. Les perspectives sont toutes aussi dures dans le monde Linux avec la montée en puissance des offres de RedHat ou de Sun. Nous avons vu par le passé que toutes les fonctionnalités clefs des gros Unix sont arrivées dans Linux ; les zones Solaris et les partitions AIX sont aujourd&#8217;hui banalisées, il n&#8217;y a pas de raison que ces technologies n&#8217;arrivent pas dans le système d&#8217;exploitation au pingouin.</p><h4><a
name="OnesizedoesnotfitallConcilierv"></a>One size does not fit all : Concilier virtualisation matérielle et cloud pour optimiser l&#8217;utilisation des data centers</h4><p>A l&#8217;époque où les applications n&#8217;étaient pas <em>friendly</em> à la mutualisation, la virtualisation était la technologie de prédilection pour optimiser l&#8217;utilisation des ressources des data centers. Aujourd&#8217;hui, les applications java légères déployées sous forme de cloud Platform As A Service sont très <em>friendly</em> à la mutualisation et se passent de la virtualisation matérielle. <strong>VMWare a suivi cette redistribution des cartes en achetant la solution de cloud computing Hyperic-TcServer-Tomcat de SpringSource.</strong><br
/> La virtualisation matérielle risque de ne pas être utilisée sur les applications légères (Java, .Net, PHP, etc) qui représentent aujourd&#8217;hui la tendance dominante mais garde sa position de leader pour optimiser l&#8217;utilisation des ressources CPU et RAM des autres types d&#8217;applications.</p><h4><a
name="Ressources"></a>Ressources</h4><ul><li>&laquo;&nbsp;<a
href="http://blog.springsource.com/2009/08/10/springsource-chapter-two/" title="SpringSource Chapter Two" >SpringSource: Chapter Two</a>&nbsp;&raquo; : L&#8217;annonce du rachat par Rod Johnson, fondateur de SpringSource.</li><li>&laquo;&nbsp;<a
href="http://blogs.vmware.com/console/2009/08/vmware-acquires-springsource.html" title="VMWare to acquire SpringSource" >VMWare to acquire SpringSource</a>&nbsp;&raquo; : L&#8217;annonce par Steve Herrod, CTO de VMWare.</li><li>&laquo;&nbsp;<a
href="http://www.devwebsphere.com/devwebsphere/2009/08/why-java-is-so-important-to-vmware.html" title="Why Java is important to VMware but may not matter long term" >Why Java is important to VMware but may not matter long term</a>&nbsp;&raquo; par Billy Newport, IBM WebSphere.</li><li>&laquo;&nbsp;<a
href="http://www.touilleur-express.fr/2009/08/11/springsource-rachete-par-vmware/" title="SpringSource rachet par VMware" >SpringSource racheté par VMware</a>&nbsp;&raquo; par Le Touilleur Express.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/</link> <comments>http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/#comments</comments> <pubDate>Mon, 11 May 2009 16:48:58 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[@Inject]]></category> <category><![CDATA[annotation]]></category> <category><![CDATA[Datagrid]]></category> <category><![CDATA[ESB]]></category> <category><![CDATA[Fuji]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Guice]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[JSon]]></category> <category><![CDATA[JSR-299]]></category> <category><![CDATA[OpenESB]]></category> <category><![CDATA[Paris JUG]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[Tapestry]]></category> <category><![CDATA[Wicket]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1985</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. SOA Fuji, le futur d&#8217;OpenESB Le coin de la technique Concevoir des APIs efficaces JavaFX : informations et controverses Sortie de Wicket 1.3.6 @Inject standardisation de l’injection de dépendances Sortie de Tapestry 5.1 Trucs et astuces Json &#8211; Restfull 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>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/#FujilefuturdOpenESB">Fuji, le futur d&#8217;OpenESB</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/#ConcevoirdesAPIsefficaces">Concevoir des APIs efficaces</a></li><li><a
href="http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/#JavaFXinformationsetcontrovers">JavaFX : informations et controverses</a></li><li><a
href="http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/#SortiedeWicket">Sortie de Wicket 1.3.6</a></li><li><a
href="http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/#Inject">@Inject standardisation de l’injection de dépendances</a></li><li><a
href="http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/#SortiedeTapestry">Sortie de Tapestry 5.1</a></li><li><a
href="http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/#TrucsetastucesJsonRestfull">Trucs et astuces Json &#8211; Restfull</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/05/11/revue-de-presse-xebia-108/#SoireDatagridauParisJug">Soirée Datagrid au Paris Jug</a></li></ul><h3><a
name="SOA"></a>SOA</h3><h4><a
name="FujilefuturdOpenESB"></a>Fuji, le futur d&#8217;OpenESB</h4><p>La prochaine version d&#8217;OpenESB, qui sera estampillée &#8216;v3&#8242;, est en cours de développement sous le nom de code &#8216;Project Fuji&#8217;. Ce projet a été récemment mis en avant par Andi Egloff, dans <a
href="http://www.java-tv.com/2009/05/07/fuji-the-next-generation-of-openesb/" title="un webcast" >un webcast</a> qui fait le tour des nombreuses nouveautés. Les principales d&#8217;entre elles sont :</p><ul><li><a
href="http://wiki.open-esb.java.net/Wiki.jsp?page=IntegrationFlowLanguageOverview" title="Integration Flow Language (IFL)" >Integration Flow Language (IFL)</a> : il s&#8217;agit d&#8217;un <a
href="http://martinfowler.com/bliki/DomainSpecificLanguage.html" title="DSL externe" >DSL externe</a> permettant de définir des flux d&#8217;intégrations. Le rôle de ce langage est donc le même que le DSL interne offert par Apache Camel.</li><li><a
href="http://wiki.open-esb.java.net/Wiki.jsp?page=FujiDJBI" title="Distributed JBI" >Distributed JBI</a> : La spécification JBI (<a
href="http://www.jcp.org/en/jsr/detail?id=208" title="JSR208" >JSR-208</a>) ne couvre pas la problématique de distribution des composants JBI sur plusieurs noeuds. Fuji apporte une extension propriétaire pour permettre cette distribution.</li><li><a
href="http://wiki.open-esb.java.net/Wiki.jsp?page=FujiRunningOJCComponentsOSGi" title="Utilisation de composants OpenJBI" >Utilisation de composants OpenJBI</a> : ces composants seront utilisables directement dans OpenESB v3. Le projet prévoit de mettre les composants dont la compatibilité aura été validée dans le <em>repository</em> Maven du projet.</li><li><a
href="http://wiki.open-esb.java.net/Wiki.jsp?page=FujiEIP" title="Enterprise Integration Patterns" >Enterprise Integration Patterns</a> : un certain nombre d&#8217;EIP sera supporté en standard et configurable via le langage IFL.</li></ul><p>La version finale d&#8217;OpenESB v3 est prévue pour le second semestre 2009, l&#8217;équipe du projet annonce une probable <em>preview</em> pour JavaOne en juin.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="ConcevoirdesAPIsefficaces"></a>Concevoir des APIs efficaces</h4><p>John De Goes vient de publier une série de deux articles (<a
href="http://jdegoes.squarespace.com/journal/2009/5/2/good-api-design-part-1.html" title="première partie" >première partie</a> et <a
href="http://jdegoes.squarespace.com/journal/2009/5/6/good-api-design-part-2.html" title="deuxime partie" >deuxième partie</a>) portant sur les bonnes pratiques de conception d&#8217;APIs. Il s&#8217;appuie sur un exemple d&#8217;API de configuration pour illustrer son propos. Les points qu&#8217;il met particulièrement en avant sont :</p><ul><li>Il est important de sélectionner le niveau d&#8217;abstraction approprié et d&#8217;assurer l&#8217;uniformité de celui-ci sur l&#8217;ensemble de l&#8217;API, ainsi que de définir et respecter une responsabilité pour chaque classe. Ceci concerne la granularité des méthodes, le type d&#8217;objets manipulés en entrée et en sortie, ainsi que la présence et le type d&#8217;exception éventuellement renvoyée.</li><li>N&#8217;offrir qu&#8217;une seule possibilité pour chaque besoin, afin d&#8217;éviter la confusion chez l&#8217;utilisateur de cette API.</li><li>S&#8217;appuyer sur les possibilités offertes par le langage pour empêcher certaines mauvaises utilisations d&#8217;une API.</li><li>L&#8217;API doit être la plus intuitive possible afin de minimiser autant que possible le besoin pour l&#8217;utilisateur d&#8217;avoir à se plonger dans une documentation.</li></ul><p>Certaines de ces idées sont déjà partagées par de nombreux développeurs, mais comme c&#8217;est souvent le cas dans l&#8217;énonciation de bonnes pratiques ou de <em>patterns</em>, tout l&#8217;intérêt réside ici dans la formalisation apportée par l&#8217;auteur.</p><p>Les lecteurs intéressés par cette problématique pourront se tourner vers le livre de Jaroslav Tulach, <a
href="http://apress.com/book/view/1430209739" title="Practical API Design" >Practical API Design</a>, qui apporte l&#8217;intéressant retour d&#8217;expérience d&#8217;un architecte de NetBeans, ou encore <a
href="http://lcsd05.cs.tamu.edu/slides/keynote.pdf" title="How to Design a Good API and Why it Matters" >How to Design a Good API and Why it Matters</a> par Joshua Bloch (auteur de <a
href="http://java.sun.com/docs/books/effective/" title="Effective Java" >Effective Java</a>).</p><h4><a
name="JavaFXinformationsetcontrovers"></a>JavaFX : informations et controverses</h4><p>Depuis plusieurs mois, nous vous rapportons les différentes <a
href="http://blog.xebia.fr/2009/02/16/revue-de-presse-xebia-96/#JavaFxsurmobile" title="informations" >informations</a> et <a
href="http://blog.xebia.fr/2009/03/09/revue-de-presse-xebia-99/#LepositionnementdeJavaFXtoujou" title="controverses" >controverses</a> à propos de JavaFX. Cette technologie RIA, développée par Sun, et introduite en décembre 2008 fait beaucoup parler d&#8217;elle car personne ne sait dire aujourd&#8217;hui ce qu&#8217;il adviendra de JavaFX dans les mois et années à venir.</p><p>Les propos particulièrement négatifs dont JavaFX a été victime à ses débuts se font moins nombreux, non pas parce que cette technologie a convaincu, mais parce qu&#8217;elle n&#8217;est plus au centre des débats. En fait, ceci est bénéfique puisque cela permet d&#8217;observer plus sereinement les différents exemples postés régulièrement par la communauté JavaFX naissante. Il ressort de ce tour d&#8217;horizon que les capacités actuelles de JavaFX ne prêtent pas à critique : les fonctionnalités de graphisme et d&#8217;animations qui sont offertes <a
href="http://java.dzone.com/articles/javafx-im-starting-believe" title="semblent satisfaire" >semblent satisfaire</a> de nombreux développeurs. Le problème porte principalement sur les manques et les promesses non tenues à ce jour :</p><ul><li>la portabilité de JavaFX sur plusieurs environnements (_desktop_, web, mobile, et TV, le fameux &#8216;<em>All the screens of your life</em>&#8216;) n&#8217;est pas assuré puisque le déploiement est impossible sur mobile, faute de <em>device</em> compatible. Le fonctionnement sur téléviseur est lui toujours prévu dans une version ultérieure.</li><li>les composants graphiques de haut niveau sont absents. Il s&#8217;agit pourtant d&#8217;un élément indispensable pour le développement d&#8217;applications RIA.</li></ul><p>Joshua Marinacci, un des meneurs de JavaFX chez Sun, a été interviewé par Scott Hanselman <a
href="http://www.hanselminutes.com/default.aspx?showID=178" title="dans un podcast" >dans un podcast</a>. Il annonce que la démonstration de JavaFX sur TV <em>pourrait</em> être faite lors de JavaOne 2009, en juin. Il reconnaît par ailleurs le marketing excessif entourant cette technologie.</p><p>Outre ces réflexions d&#8217;ordre technique, le rachat de Sun par Oracle constitue une autre source de débats. Personne ne sait quelle décision Oracle prendra quant à JavaFX : soutenir ce projet qui nécessite encore un investissement lourd pour prétendre réellement concurrencer les autres acteurs RIA ou abandonner ce marché. Les différentes opinions sur ce sujet sont présentées et argumentées dans <a
href="http://lescastcodeurs.com/2009/05/les-cast-codeurs-podcast-episode-3/" title="le dernier podcast" >le dernier podcast</a> des Cast Codeurs.</p><h4><a
name="SortiedeWicket"></a>Sortie de Wicket 1.3.6</h4><p><a
href="http://wicket.apache.org/" title="Wicket" >Wicket</a>, le framework orienté composant de la <em>Fondation Apache</em>, sort en version <a
href="http://wicket.apache.org/news.html#News-wicket1.3.6" title="1.3.6" >1.3.6</a> (1.4 toujours en <a
href="http://www.apache.org/dyn/closer.cgi/wicket/1.4-rc2" title="release candidate 2" >release candidate 2</a>).</p><p>Malgré les 7 mois d&#8217;écart avec la version précédente, il ne faut pas s&#8217;attendre à une révolution pour cette nouvelle mouture. Il s&#8217;agit en effet d&#8217;une version de stabilisation et d&#8217;amélioration. On notera donc de nombreux <a
href="http://wicket.apache.org/news.html#News-Bug" title="correctifs de bugs" >correctifs de bugs</a> et <a
href="http://wicket.apache.org/news.html#News-Improvement" title="plusieurs amliorations" >plusieurs améliorations</a>.</p><p>Cette version est téléchargeable sur le <a
href="http://www.apache.org/dyn/closer.cgi/wicket/1.3.6" title="site dApache" >site d&#8217;Apache</a> ou en changeant votre version de <em>pom.xml</em> en 1.3.6.</p><p>A noter, toujours autour de Wicket, le retour critique de <a
href="http://www.tomsquest.com" title="Tom's Quest" >Tom&#8217;s Quest</a> sur <a
href="http://www.tomsquest.com/blog/les-limites-de-wicket/" title="Wicket et ses limites" >Wicket et ses limites</a> après la présentation, chez Zenika, de Martin Dashorst, un des committers principaux de Wicket et coauteur du livre <a
href="http://wicketinaction.com/" title="Wicket In Action" >Wicket In Action</a>.</p><h4><a
name="Inject"></a>@Inject standardisation de l’injection de dépendances</h4><p>Pas mal de bruit la semaine dernière dans la blogosphère Java avec l&#8217;annonce par Google et <a
href="http://www.springsource.com/" title="SpringSource" >SpringSource</a> d&#8217;une nouvelle proposition de JSR dédiée à l&#8217;injection de dépendances : <a
href="http://code.google.com/p/atinject/" title="@Inject ("Annotations for Dependency Injection")" >@Inject (&laquo;&nbsp;Annotations for Dependency Injection&nbsp;&raquo;)</a>.<br
/> Comme le <a
href="http://google-code-updates.blogspot.com/2009/05/javaxinjectinject.html" title="souligne 'Crazy' Bob Lee" >souligne &#8216;Crazy&#8217; Bob Lee</a>, l&#8217;auteur principal de <a
href="http://code.google.com/p/google-guice/" title="Google Guice" >Google Guice</a>, la sortie de Spring 1.0, il y a déjà 5 ans, a apporté l&#8217;injection de dépendances aux masses, via un fichier de configuration propriétaire. Il y a 3 ans, Google Guice a proposé la même chose via des annotations (et SpringSource propose la même chose depuis Spring 2.5).<br
/> Si le succès de Google Guice est assez limité face au raz de marée Spring, le constat est là : il manque un standard. Comme les deux librairies ne sont pas compatibles, si vous exposez à un autre projet/équipe une librairie contenant des dépendances injectées par Google Guice, et que l&#8217;autre équipe utilise Spring, elle devra redéfinir tous les beans et leurs dépendances dans un fichier de configuration Spring (ou des annotations Spring).<br
/> @Inject propose donc de standardiser les annotations, afin de rendre portables sur différents frameworks (<a
href="http://blog.xebia.fr/2009/04/15/google-guice-les-bases-de-linjection-de-dependances/" title="Guice" >Guice</a>, Spring, <a
href="http://blog.xebia.fr/2009/04/24/commencer-linjection-de-dependances-avec-tapestry-ioc" title="Tapestry IOC" >Tapestry IOC</a>, etc.) des classes injectables.</p><p><a
href="http://blog.xebia.fr/2009/05/11/inject-standardisation-de-linjection-de-dependances" title="@Inject standardisation de l’injection de dépendances" >Lire notre article à ce sujet : @Inject standardisation de l’injection de dépendances</a>.</p><h4><a
name="SortiedeTapestry"></a>Sortie de Tapestry 5.1</h4><p>Tapestry, dont on parlait récemment dans l&#8217;article <a
href="http://blog.xebia.fr/2009/04/24/commencer-linjection-de-dependances-avec-tapestry-ioc/" title="linjection de dpendances avec Tapestry IoC" >l&#8217;injection de dépendances avec Tapestry IoC</a>, passe en version 5.1 en respectant à la lettre son nouveau planning d&#8217;une version tout les 4 à 6 mois.<br
/> Outre les améliorations de performance et les nombreux bugs corrigés, la mise à jour embarque des nouveautés sur le support JavaScript, à la traîne par rapport au prédécesseur Tapestry 4.<br
/> Le rafraîchissement de plusieurs zones d&#8217;une page en une seule requête Ajax est maintenant supporté. Tapestry embarque maintenant la console JavaScript <a
href="http://www.gscottolson.com/blackbirdjs/" title="Blackbird" >Blackbird</a>.<br
/> Du côté des améliorations sur les templates, le chargement et le rendu des pages ont été optimisés, ce qui rend T5 plus rapide que jamais.<br
/> Vous pourrez aussi apprécier l&#8217;amélioration substantielle de l&#8217;archetype quickstart qui offre désormais une jolie interface, avec un design css intégré.<br
/> L&#8217;intégration de Spring est maintenant à double sens : on peut injecter des services Tapestry dans un Bean Spring.<br
/> Pour la prochaine version, qui sortira sans doute à la rentrée 2009, l&#8217;accent sera mis sur l&#8217;intégration de Spring Web Flow, et la possibilité d&#8217;utiliser une application Tapestry en tant que Portlet.</p><ul><li><a
href="http://tapestry.apache.org/tapestry5.1/release-notes.html" title="Release note" >Release note</a></li><li><a
href="http://tapestry.apache.org/tapestry5.1/" title="Site Maven du projet" >Site Maven du projet</a></li></ul><h4><a
name="TrucsetastucesJsonRestfull"></a>Trucs et astuces Json &#8211; Restfull</h4><p><a
href="http://www.linkedin.com/in/edwink" title="Edwin Khodabakchian" >Edwin Khodabakchian</a>, fondateur de Collaxa (aujourd&#8217;hui au coeur de la stratégie SOA d&#8217;Oracle), nous donne quelques <a
href="http://blog.feedly.com/2009/05/06/best-practices-for-building-json-rest-web-services/" title="bonnes pratiques pour crire des services web REST en utilisant Json" >bonnes pratiques pour écrire des services web REST en utilisant Json</a> (un couple qui a le vent en poupe). Actuellement lancé dans l&#8217;écriture de Feedly, une extension Firefox qui agrège des tweets et des entrés Google Reader, Edwin fera régulièrement profiter ses lecteurs de son expérience. Sans entrer dans les détails de ces bonnes pratiques, nous retiendrons l&#8217;astucieux découpage en 7 phases d&#8217;implémentation :</p><ul><li>Definir un service ou une ressource <strong>simple</strong> : définir le modèle Json et les 4 opérations REST et le servlet qui les fournit.</li><li>Ecrire un client : utiliser le service avec un javascript simple. Cette possibilité est offerte par de nombreux frameworks, dont JQuery.</li><li>Ajouter une étape de validation : modifier le service pour valider les ressources Json et utiliser les codes retour HTTP.</li><li>Complexifier les ressources : modifier la hiérarchie d&#8217;Url pour servir des ressources plus riches. Tester la pérennité des ressources simples (phase 2).</li><li>Ajouter un cache : améliorer les performances et la scalabilité de votre système.</li><li>Implémenter la sécurité : utiliser une authentification web.</li><li>Publier des événements business : pour découpler les processus REST des processus back-end. Les ressources REST sont traitées, un évènement business est lancé, qui déclenche le ou les traitements back-end.</li><li>Gérer un cycle de vie pour les ressources : coupler un état de la ressource avec la phase de validation et la phase de publication des évènements.</li></ul><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="SoireDatagridauParisJug"></a>Soirée Datagrid au Paris Jug</h4><p>Le <a
href="http://blog.xebia.fr/2009/05/06/paris-jug-soiree-grid-computing-le-12-mai/" title="DataGrid au Paris Jug" >DataGrid au Paris Jug</a>, c&#8217;est demain.<br
/> <a
href="http://www.jugevents.org/jugevents/event/16041" title="Pensez  rserver" >Pensez à réserver</a> si ce n&#8217;est déjà fait.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>@Inject standardisation de l&#8217;injection de dépendances</title><link>http://blog.xebia.fr/2009/05/11/inject-standardisation-de-linjection-de-dependances/</link> <comments>http://blog.xebia.fr/2009/05/11/inject-standardisation-de-linjection-de-dependances/#comments</comments> <pubDate>Mon, 11 May 2009 16:46:47 +0000</pubDate> <dc:creator>Guillaume Carre</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[@Inject]]></category> <category><![CDATA[annotation]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Guice]]></category> <category><![CDATA[Injection de dépendances]]></category> <category><![CDATA[JSR-299]]></category> <category><![CDATA[JSR-330]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1979</guid> <description><![CDATA[Pas mal de bruit la semaine dernière dans la blogosphère Java avec l&#8217;annonce par Google et SpringSource d&#8217;une nouvelle proposition de JSR dédiée à l&#8217;injection de dépendances : @Inject (&#171;&#160;Annotations for Dependency Injection&#160;&#187;). Comme le souligne &#8216;Crazy&#8217; Bob Lee, l&#8217;auteur principal de Google Guice, la sortie de Spring 1.0, il y a déjà 5 ans, [...]]]></description> <content:encoded><![CDATA[<p>Pas mal de bruit la semaine dernière dans la blogosphère Java avec l&#8217;annonce par Google et <a
href="http://www.springsource.com/" title="SpringSource" >SpringSource</a> d&#8217;une nouvelle proposition de JSR dédiée à l&#8217;injection de dépendances : <a
href="http://code.google.com/p/atinject/" title="@Inject ("Annotations for Dependency Injection")" >@Inject (&laquo;&nbsp;Annotations for Dependency Injection&nbsp;&raquo;)</a>.<br
/> Comme le <a
href="http://google-code-updates.blogspot.com/2009/05/javaxinjectinject.html" title="souligne 'Crazy' Bob Lee" >souligne &#8216;Crazy&#8217; Bob Lee</a>, l&#8217;auteur principal de <a
href="http://code.google.com/p/google-guice/" title="Google Guice" >Google Guice</a>, la sortie de Spring 1.0, il y a déjà 5 ans, a apporté l&#8217;injection de dépendances aux masses, via un fichier de configuration propriétaire. Il y a 3 ans, Google Guice a proposé la même chose via des annotations (et SpringSource propose la même chose depuis Spring 2.5).</p><p>Si le succès de Google Guice est assez limité face au raz de marée Spring, le constat est là : il manque un standard. Comme les deux librairies ne sont pas compatibles, si vous exposez à un autre projet/équipe une librairie contenant des dépendances injectées par Google Guice, et que l&#8217;autre équipe utilise Spring, elle devra redéfinir tous les beans et leurs dépendances dans un fichier de configuration Spring (ou des annotations Spring).</p><p>@Inject propose donc de standardiser les annotations, afin de rendre portables sur différents frameworks (<a
href="http://blog.xebia.fr/2009/04/15/google-guice-les-bases-de-linjection-de-dependances/" title="Guice" >Guice</a>, Spring, <a
href="http://blog.xebia.fr/2009/04/24/commencer-linjection-de-dependances-avec-tapestry-ioc" title="Tapestry IOC" >Tapestry IOC</a>, etc.) des classes injectables.</p><h3><a
name="Pourquoiautantdebruit"></a>Pourquoi autant de bruit ?</h3><p>Une autre JSR qui parle d&#8217;injection de dépendances a déjà passé le stade de la proposition, la <a
href="http://jcp.org/en/jsr/detail?id=299" title="JSR 299" >JSR 299</a>, ex-Web Beans, portée en particulier par Gavin King de Red Hat, auteur d&#8217;Hibernate. La JSR 299 va beaucoup plus loin (trop?) que l&#8217;injection de dépendances, sujet abordé dans <a
href="http://blog.xebia.fr/2009/01/26/revue-de-presse-xebia-93/#JSRexWebBeansUneJSRDependencyI" title="de précédentes" >de précédentes</a> <a
href="http://blog.xebia.fr/2009/03/16/revue-de-presse-xebia-100/#WebBeanslimplementationdelaJSR" title="revues de presse" >revues de presse</a>.</p><p>La JSR 299 a déjà beaucoup fait parler d&#8217;elle, car elle a récemment été remaniée, afin d&#8217;être intégrée à temps à Java EE 6 (dont la spécification doit être terminée dans 3 mois). Vous pouvez <a
href="http://blog.xebia.fr/2009/01/26/revue-de-presse-xebia-93/#comment-10207" title="lire les commentaires sur notre revue de presse du 26 Janvier dernier" >lire les commentaires sur notre revue de presse du 26 Janvier dernier</a>, dans laquelle nous nous étonnions de l&#8217;absence de SpringSource dans la JSR 299.</p><p>Quelques extraits de ces commentaires :</p><blockquote><p> Emmanuel Bernard (JBoss) : &laquo;&nbsp;<em>&#8230;SpringSource n&#8217;a jamais demandé à faire partie du groupe d&#8217;expertise&#8230;</em>&nbsp;&raquo;<br
/> Emmanuel Bernard : &laquo;&nbsp;<em>&#8230;JBoss a passé un temps énorme à construire JSR 299&#8230;</em>&nbsp;&raquo;<br
/> Antonio Goncalves (Java EE 6 Expert Group) : &laquo;&nbsp;<em>&#8230;la JSR 299 ne se transforme pas radicalement, je dirais plutôt qu&#8217;elle réduit sa voilure et se concentre sur son but initial : un contexte unifié entre les EJBs et JSF&#8230;</em>&nbsp;&raquo;<br
/> Cyrille Le Clerc (Xebia) : &laquo;&nbsp;<em>&#8230;une JSR qui se transforme radicalement, au point de changer de nom, pendant la phase de Public Review, après deux années et demie de travail intensif, cela me parait exceptionnel et peu rassurant&#8230;</em>&nbsp;&raquo;</p></blockquote><h3><a
name="Bonneidemauvaistiming"></a>Bonne idée, mauvais timing ?</h3><p>C&#8217;est dans ce contexte que Google et SpringSource décident de proposer @Inject. L&#8217;intention est légitime, et les deux acteurs sont sans aucun doute les plus expérimentés sur le sujet de l&#8217;injection de dépendances. Il semble en effet beaucoup plus aisé pour Guice, Spring ou autre framework d&#8217;implémenter une JSR de la taille de l&#8217;éventuelle JSR @Inject, alors qu&#8217;on les voit mal implémenter rapidement la JSR 299. Google et SpringSource suggèrent donc à la JSR 299 de ne plus spécifier l&#8217;injection de dépendances, et de réutiliser les annotations définies dans @Inject (extrait de la proposition : &laquo;&nbsp;<em>JSR 299 is defining a dependency injection framework for Java EE, and might support these annotations.</em>&laquo;&nbsp;).</p><p>En revanche le timing nous semble vraiment mal choisi : cette spécification est proposée à quatre mois de la validation de Java EE 6 (Septembre 2009). Cela semblait déjà compliqué pour la JSR 299 (dont l&#8217;inclusion à Java EE 6 n&#8217;a toujours pas été votée), et @Inject ajoute très tard son grain de sel.<br
/> Même si Bob Lee pense pouvoir faire valider @Inject par le JCP en cinq mois, ou moins dans le cadre de Java EE 6, il est peu probable qu&#8217;@Inject fasse partie de Java EE 6 ; on n&#8217;a jamais vu de JSR consensuelle validée aussi rapidement, comment ferait une JSR polémique ? La JSR 299 fait quant à elle face à un planning de plus en plus serré. Le résultat des courses est sans appel : on &laquo;&nbsp;risque&nbsp;&raquo; donc de voir arriver une spécification Java EE 6 sans JSR d&#8217;injection de dépendances.</p><p>Hormis Gavin King (JSR 299 &#8211; JBoss) et Bob Lee (@Inject &#8211; Google) qui ont <a
href="http://in.relation.to/Bloggers/CommentsOnAnnotationsForDependencyInjection" title="âprement débattu sur la blogosphère" >âprement débattu sur la blogosphère</a>, les membres des expert groups de JSR 299 et Java EE 6 sont restés silencieux &#8230; comme Rod Johnson, co-inspirateur de @Inject (qui était sans doute <a
href="http://www.springsource.com/node/1547" title="bien occup la semaine dernire" >bien occupé la semaine dernière</a>).</p><p>Enfin, je vous suggère de prendre quelques minutes pour lire le &laquo;&nbsp;brouillon&nbsp;&raquo; de proposition de JSR @Inject. On y voit de nombreux noms connus et reconnus parmi les supporters de cette JSR (Joshua Bloch, Paul Hammant &#8211; ThoughtWorks &#038; PicoContainer founder, Doug Lea, Tim Peierls, James Strachan, Hani Suleiman, Jason van Zyl &#8211; Maven Plexus, Thiago H de Paula Figueiredo &#8211; Tapestry IoC). @Inject ne propose que de standardiser les annotations, et ne décrit pas la manière dont les dépendances vont être résolues, ce sera à la charge du conteneur. Le périmètre fonctionnel de la proposition est donc très focalisé.</p><h3><a
name="Sousvosyeuxbahisuneinjectionde"></a>Sous vos yeux ébahis, une injection de dépendance sans Spring, sans Guice et sans JSR</h3><p>Pour rappel, même si aucune JSR d&#8217;injection de dépendances n&#8217;est intégrée dans le futur à Java EE 6, vous avez le droit d&#8217;injecter vos dépendances vous même, sans Spring, sans Guice, par exemple avec un simple constructeur Java ! <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><pre class="brush: java; title: ; notranslate">
public class MyService {
	private MyDAO myDAO;
	public MyService(MyDAO myDAO) {
		this.myDAO = myDAO;
	}
}
</pre><p>Ce qui vous permettra d&#8217;y injecter bouchons ou mocks depuis vos <a
href="http://blog.xebia.fr/2008/04/11/les-10-commandements-des-tests-unitaires/" title="tests unitaires" >tests unitaires</a>.</p><h3><a
name="Quelqueslienssurlesujet"></a>Quelques liens sur le sujet</h3><ul><li><a
href="http://crazybob.org/2009/05/announcing-javaxinjectinject.html" title="lannonce sur le blog de Bob Lee" >l&#8217;annonce sur le blog de Bob Lee</a></li><li><a
href="http://in.relation.to/Bloggers/CommentsOnAnnotationsForDependencyInjection" title="la raction de Gavin King" >la réaction de Gavin King et les échanges avec Bob Lee dans les commentaires</a></li><li><a
href="http://code.google.com/p/atinject/" title="le projet Inject sur Google Code" >le projet @Inject sur Google Code</a></li><li><a
href="http://docs.google.com/Doc?id=dd2fhx4z_13cw24s7dj" title="Proposition de la JSR Inject" >Proposition de la JSR @Inject</a></li><li><a
href="http://www.theserverside.com/news/thread.tss?thread_id=54499" title="quelques (rares) commentaires intéressants sur TSS" >quelques (rares) commentaires intéressants sur TSS</a></li><li><a
href="http://twitter.com/#search?q=inject" title="Inject sur twitter" >@Inject sur twitter</a></li></ul><div
align="center"> <a
href="http://twitter.com/gcarre"><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/04/twitter4.png" alt="twitter guillaume carré" title="twitter guillaume carré"  /><br
/> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/05/11/inject-standardisation-de-linjection-de-dependances/feed/</wfw:commentRss> <slash:comments>2</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/15/revue-de-presse-xebia-87/</link> <comments>http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#comments</comments> <pubDate>Mon, 15 Dec 2008 18:02:24 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Adobe]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Grizzly]]></category> <category><![CDATA[Guice]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[jdk-7]]></category> <category><![CDATA[PicoContainer]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[tc Server]]></category> <category><![CDATA[Tomcat]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1121</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Coopération entre SpringSource et Adobe tc Server : SpringSource signe la première offre open source professionnelle sur Tomcat Le coin de la technique Les orientations de GWT : Roadmap GWT 1.6 Java 7, ce n&#8217;est pas pour tout de suite&#8230; [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#CooprationentreSpringSourceetA">Coopération entre SpringSource et Adobe</a></li><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#tcServerSpringSourcesignelapre">tc Server : SpringSource signe la première offre open source professionnelle sur Tomcat</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#LesorientationsdeGWTRoadmapGWT">Les orientations de GWT : Roadmap GWT 1.6</a></li><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#Javacenestpaspourtoutdesuite">Java 7, ce n&#8217;est pas pour tout de suite&#8230;</a></li><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#SortiedeGrizzly">Sortie de Grizzly 1.9</a></li><li><a
href="http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/#PrsentationdeGoogleGuice">Présentation de Google Guice 2.0</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="CooprationentreSpringSourceetA"></a>Coopération entre SpringSource et Adobe</h4><p>SpringSource renforce son positionnement sur les RIA en signant un accord de partenariat avec Adobe Systems. Un partenariat dont l&#8217;objectif est de simplifier le développement et le déploiement des applications RIA se basant sur Adobe Flex et Spring.</p><p>Adobe et SpringSource se sont alliés pour travailler sur Spring BlazeDS Integration, un projet open source qui vise à simplifier l&#8217;intégration de Spring avec Adobe&#8217;s BlazeDS. Une version bêta est prévue dans une ou deux semaines.</p><p>SpringSource a prévu pour l&#8217;année prochaine un nouvel adaptateur pour Adobe LiveCycle Data Services ES, qui permet d&#8217;instaurer un moteur d&#8217;échanges de données entre les applications RIA basées sur Flex et Spring.</p><p>Ce rapprochement permet à SpringSource de renforcer son positionnement sur les RIA.</p><h4><a
name="tcServerSpringSourcesignelapre"></a>tc Server : SpringSource signe la première offre open source professionnelle sur Tomcat</h4><p>Philip Hanik présente dans <a
href="http://www.springsource.com/node/1116" title=""SpringSource tc Server - The Tomcat you know. The enterprise capabilities you need."" >&laquo;&nbsp;SpringSource tc Server &#8211; The Tomcat you know. The enterprise capabilities you need.&nbsp;&raquo;</a> le périmètre du nouvellement annoncé tc Server.</p><p>On y retrouve tous les ingrédients de la version commerciale d&#8217;un produit open source professionnel :</p><ul><li>Support : de l&#8217;entrée de gamme &laquo;&nbsp;heures ouvrées&nbsp;&raquo; à la formule &laquo;&nbsp;mission critique 24&#215;365&#8243; avec une réponse dans l&#8217;heure</li><li>Packaging : livraison packagée avec les patchs nécessaires au client et des configurations et scripts de démarrage optimisés pour les différentes plateformes (32 vs 64 bits, etc).</li><li>Indemnisation : en cas de problème juridique concernant la nature Open Source de Tomcat.</li><li>Administration centralisée : ajout de mécanismes de gestion centralisée de serveurs Tomcat (configuration des serveurs, déploiement d&#8217;applications clusterisées [1] )</li><li>Audit : suivi des opérations réalisées sur les serveurs.</li><li>Monitoring et alertes : reprise des fonctionnalités de <a
href="http://www.springsource.com/files/SpringSource%20Application%20Management%20Suite%20Datasheet.pdf" title="SpringAMS" >SpringAMS</a> ( <a
href="http://www.hyperic.com/products/open-source-systems-monitoring.html" title="Hyperic HQ" >Hyperic HQ</a> + extensions de monitoring de Spring Framework).</li><li>Diagnostique : détection de thread lock, corrélation des erreurs avec les urls et les threads, mécanisme de <a
href="http://blog.springsource.com/2008/01/07/capturing-failures-and-system-state-part-i/" title="First Failure Data Capture (FFDC)" >First Failure Data Capture (FFDC)</a>.</li></ul><p>Si les premiers points étaient déjà couverts par des offres de support commercial (e.g. <a
href="http://www.springsource.com/products/ers" title="SpringSource Enterprise Ready Server" >SpringSource Enterprise Ready Server</a>), c&#8217;est la première offre de type <a
href="http://blogs.the451group.com/opensource/2008/09/01/andrew-lampitt-defines-open-core-licensing/" title="Open Core Licensing" >Open Core Licensing</a> pour Tomcat (noyau open source + extensions commerciales orientées administration).<br
/> Les éditeurs incitaient jusqu&#8217;à présent leurs clients intéressés par un support Tomcat à faire un <em>upsale</em> sur serveur plus sophistiqué (JBoss App. Server, Websphere App. Server Community Edition, Spring dm Server, etc).</p><p>Quel intérêt de payer 500$/an/cpu pour tc Server plutôt que d&#8217;utiliser Tomcat ? Outre le support qui sera important pour de nombreux exploitants, les fonctionnalités d&#8217;exploitations et de supervision présentent un intérêt à prendre en compte.</p><p>Nous noterons pour conclure que l&#8217;ensemble des fonctionnalités annoncées ne sera pas disponible dès la version 1.0 de tc Server.</p><p>[1] tc Server permet notamment des opérations install/update/start/stop/uninstall/rollback <em>phasées</em> sur des clusters pour mettre à jour les noeuds les uns après les autres sans arrêt du service.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="LesorientationsdeGWTRoadmapGWT"></a>Les orientations de GWT : Roadmap GWT 1.6</h4><p>La version actuelle de <a
href="http://code.google.com/intl/fr/webtoolkit/" title="GWT" >GWT</a> est la 1.5.3. L&#8217;équipe GWT a présenté sur son blog officiel les orientations de GWT 1.6 et des prochaines versions : <a
href="http://googlewebtoolkit.blogspot.com/2008/12/whats-ahead-for-google-web-toolkit_10.html" title="What's ahead for Google Web Toolkit" >What&#8217;s ahead for Google Web Toolkit</a>.</p><p>Ainsi, on observe que l&#8217;équipe GWT s&#8217;attaque à différents points :</p><ul><li><strong>Performance</strong></li><ul><li>De compilation pour améliorer la productivité du cycle de développement</li><li>D&#8217;exécution : optimisation de l&#8217;utilisation de la classe <code>StringBuilder</code> par exemple, des composants (cf <em>LazyPanel</em> plus bas)</li></ul><li>S&#8217;approcher des <strong>bonnes pratiques éprouvées dans la communauté Java</strong> : voici la spécification : <a
href="http://code.google.com/p/google-web-toolkit/wiki/WAR_Design_1_6" title="Design Doc for 1.6 WAR structure" >Design Doc for 1.6 WAR structure</a>. Ainsi, il sera possible de livrer les fichiers statiques (images, css) dans un répertoire hors de la WebApps. Actuellement tout est chargé via le <em>classpath</em>. Ces ressources statiques pourront être &laquo;&nbsp;<a
href="http://www.akamai.fr/" title="akamai" >akamai</a>-llisées&nbsp;&raquo; et aussi relivrées indépendamment de la WebApp.</li><li><strong>Richesse des composants</strong> : intégration de nouveaux composants qui étaient dans l&#8217;<a
href="http://code.google.com/intl/fr/docreader/#p=google-web-toolkit-incubator&#038;s=google-web-toolkit-incubator&#038;t=google-web-toolkit-incubator" title="incubateur de composants GWT" >incubateur de composants GWT</a></li><ul><li>Un calendrier : <a
href="http://code.google.com/intl/fr/docreader/#p=google-web-toolkit-incubator&#038;s=google-web-toolkit-incubator&#038;t=DatePicker" title="DatePicker" >DatePicker</a></li><li>Un <em>Panel</em> qui permet l&#8217;affichage du contenu d&#8217;un <em>Panel</em> lorsqu&#8217;on le souhaite afin d&#8217;améliorer les performances d&#8217;affichage : <a
href="http://code.google.com/intl/fr/docreader/#p=google-web-toolkit-incubator&#038;s=google-web-toolkit-incubator&#038;t=LazyPanel" title="LazyPanel" >LazyPanel</a></li></ul><li>Migration de Tomcat à Jetty pour le <em>Hosted Mode Server</em>.</li></ul><p>Cette version 1.6 est prévue pour le premier trimestre 2009.</p><p>Ils parlent aussi de la Roadmap GWT :</p><ul><li>Marwan KHELIF avec <a
href="http://www.mkhelif.fr/2008/12/11/gwt-16-quoi-de-neuf.html" title="GWT 1.6 : quoi de neuf" >GWT 1.6 : quoi de neuf ?</a></li><li>Thomas Recloux avec <a
href="http://blog.tartachuc.org/2008/12/11/roadmap-gwt-16/" title="Roadmap GWT 1.6" >Roadmap GWT 1.6</a></li><li>A voir aussi sur le site officiel de GWT <a
href="http://code.google.com/intl/fr/webtoolkit/makinggwtbetter.html" title="Making Gwt Better" >Making Gwt Better</a></li></ul><h4><a
name="Javacenestpaspourtoutdesuite"></a>Java 7, ce n&#8217;est pas pour tout de suite&#8230;</h4><p>Initialement prévu pour début 2009, nous n&#8217;avons toujours pas (peu) eu de détails officiels concernant celui-ci. Vous vous en doutiez, Java 7 ne sortira pas demain. Suite à une des conférences de Devoxx, nous en savons désormais un peu plus sur ce sujet : sa sortie décalée à <strong>début 2010</strong>.</p><p>Est-ce si lointain ? Pas vraiment,  à la vue de tous les différents qui tournent autour du Jdk 7 (modularité, closures &#8230;), il ne sera probablement pas trop d&#8217;une année pour résoudre tous ces sujets de discordes. Pour y arriver, des choix rapides et judicieux devront être pris, cette même conférence en a d&#8217;ailleurs laissé sous-entendre quelques-uns, en voici <a
href="http://hamletdarcy.blogspot.com/2008/12/java-7-update-from-mark-reinhold-at.html" title="les grandes lignes" >les grandes lignes</a>.</p><ul><li><strong>Modularité</strong> : point central de Java7, après la <a
href="http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/#JSROSGimatuerStanleyHo" title="mort programmée de la JSR-277" >mort programmée de la JSR-277</a>, la réconciliation avec OSGi devra sans doute passer par la <a
href="http://jcp.org/en/jsr/detail?id=294" title="JSR-294" >JSR-294</a> (sous-jacente) &#8211; <a
href="http://blog.xebia.fr/2008/02/27/jsr-294-les-superpackages/" title="les superpackages" >les superpackages</a>. Si quelques changements récents offrent des perspectives de réconciliation, l&#8217;aventure ne fait que commencer pour le sujet le plus <a
href="http://www.touilleur-express.fr/2008/12/13/devoxx-que-contiendra-java-7/" title="sensible du Jdk 7" >sensible du Jdk 7</a>. Le nouveau <a
href="http://blogs.sun.com/mr/entry/jigsaw" title="projet Jigsaw" >projet Jigsaw</a> qui doit permettre de partager à la communauté l&#8217;avancement des travaux <a
href="http://neilbartlett.name/blog/2008/12/08/hope-fear-and-project-jigsaw/" title="est déjà fortement controversé" >est déjà fortement controversé</a>.</li><li><strong>Les closures</strong> : la grande blague ; le jdk7 ne proposera finalement pas cette fonctionnalité. Aucun consensus n&#8217;ayant été trouvé à ce sujet par la communauté : celles-ci sont pour le moment <em>déscopées</em>.</li><li><strong>Les nouvelles API</strong> :  aucun scoop à ce sujet. Nous en connaissions déjà les principales : nio2 (<a
href="http://jcp.org/en/jsr/detail?id=203" title="JSR-203" >JSR-203</a>) et JodaTime (<a
href=" http://jcp.org/en/jsr/detail?id=310" title="JSR-310" >JSR-310</a>).</li><li><strong>Évolutions du langage</strong> : C&#8217;est Joseph D. Darcy qui sera chargé de définir et regrouper les <a
href="http://blogs.sun.com/darcy/entry/guidance_measure_language_change_size" title="petites" >petites</a> évolutions du langage pour le Jdk 7. Pour <a
href=" http://blogs.sun.com/darcy/entry/small_language_changes_jdk_7" title="cette future nouvelle JSR" >cette future nouvelle JSR</a> (sa 3e après <a
href="http://jcp.org/en/jsr/detail?id=13" title="JSR-13" >JSR-13</a> et <a
href="http://jcp.org/en/jsr/detail?id=269" title="JSR-269" >JSR-269</a>), il a prévu d&#8217;impliquer d&#8217;avantage la communauté pour ce point facilement sujet à controverse. Son idée est de proposer et demander les retours de la communauté en amont du processus pour éviter toute controverse.  Avant même que la JSR ne soit proposée en draft, les grandes lignes de celles-ci devraient en être définies, disponibles et discutées sur un <a
href="http://mail.openjdk.java.net/pipermail/announce/2008-December/000065.html" title="projet spécifique de l'open JDK" >projet spécifique de l&#8217;open JDK</a>. Cette JSR est prévue pour sortir au cours du premier semestre 2009.</li></ul><p>À ce propos, vous vous demandez peut-être comment va-t-il s&#8217;y prendre pour intégrer ces changements ? C&#8217;est peut-être également l&#8217;occasion de revenir sur un de ces anciens articles présentant les différentes étapes à suivre pour <a
href="http://blogs.sun.com/darcy/entry/so_you_want_to_change" title="ajouter des fonctionnalités dans le jdk " >ajouter des fonctionnalités dans le jdk </a>.</p><h4><a
name="SortiedeGrizzly"></a>Sortie de Grizzly 1.9</h4><p><a
href="http://weblogs.java.net/blog/jfarcand/archive/2008/12/grizzly_190_is.html" title="Grizzly 1.9 est sorti" >Grizzly 1.9 est sorti</a>, à noter que la version 2.0 est prévue pour la fin de l&#8217;année. <a
href="https://grizzly.dev.java.net/" title="Grizzly" >Grizzly</a> est un framework Sun pour aider les développeurs à <strong>construire des serveurs robustes et scalables</strong> en utilisant l&#8217;API Java NIO (et NIO 2). Il met aussi à disposition le support de différents protocoles :</p><ul><li><strong><a
href="http://en.wikipedia.org/wiki/Comet_(programming)" title="<strong>Comet</strong>&nbsp;&raquo; ><strong>Comet</strong></a></strong>, qui permet à un serveur de pousser des informations au client.</li><li>Bayeux Protocol, qui permet une communication continue et bilatérale entre un serveur et un client</li><li>Servlet (support partiel)</li></ul><p>Il est aussi possible de développer un client serveur sur HTTP plus classique (sans push de donnée serveur). Cependant, ce n&#8217;est plus la vocation première du framework Grizzly.</p><p>À titre d&#8217;exemple, le serveur d&#8217;applications <a
href="https://glassfish.dev.java.net/" title="Glassfish" >Glassfish</a> utilise Grizzly comme HTTP Listener.</p><p>Les nouveautés de cette version sont :</p><ul><li>Support des I/O asynchrones (NIO2, <a
href="http://blog.xebia.fr/2008/07/21/revue-de-presse-xebia-66/#JSRMoreNewIOAPIsfortheJavaPlat" title="Xebia en avait parlé" >Xebia en avait parlé</a>), cela permet d&#8217;améliorer grandement les performances</li><li>Support des <em>HTTP write</em> asynchrones</li><li><code>GrizzlyAdapterChain</code> supporte maintenant plusieurs adapteurs et peut transformer les requêtes d&#8217;entrées à la volée</li><li>Le framework Comet a amélioré ses performances. À voir aussi un exemple d&#8217;implémentation utilisant GrizzlyComet : <a
href="http://weblogs.java.net/blog/jfarcand/archive/2008/11/writing_a_twitt.html" title="Writing a Twitter like application using Grizzly Comet part 1: The Servlet" >Writing a Twitter like application using Grizzly Comet part 1: The Servlet</a>.</li></ul><h4><a
name="PrsentationdeGoogleGuice"></a>Présentation de Google Guice 2.0</h4><p>La sortie Guice 2.0 est attendue pour décembre 2008 donc très prochainement.</p><p>À l&#8217;image de Spring, Guice est un framework d&#8217;injection de dépendances. Cependant, Guice se démarque de Spring dans la mesure où Guice fonctionne sans aucun XML. La configuration et le tissage des dépendances se font de manière programmatique. Il utilise les annotations du langage Java 5.</p><p>Guice se veut être un framework léger et facile à intégrer. Il existe d&#8217;ailleurs un plugin Struts pour gérer l&#8217;injection de dépendances en Guice.</p><p>L&#8217;article <a
href="http://www.ibm.com/developerworks/java/library/j-guice.html" title="Dependency injection with Guice" >Dependency injection with Guice</a> de Nicholas Lesoecki, employé à Google, présente le fonctionnement de Guice.</p><p>Voici le fonctionnement du Guice d&#8217;un point de vue programmatique :</p><pre class="brush: java; title: ; notranslate">
@Inject
public FrogMan(Vehicle vehicle) {
  this.vehicle = vehicle;
}
</pre><p>Le tissage s&#8217;effectue aussi de manière programmatique, ce qui le différencie radicalement de Spring :</p><pre class="brush: java; title: ; notranslate">
public class HeroModule implements Module {
  public void configure(Binder binder) {
    binder.bind(Vehicle.class).to(FrogMobile.class);
  }
}
</pre><p>Le tissage est donc réalisé dans un <code>Module</code>.</p><p>Ensuite le contexte Guice se démarre comme suit :</p><pre class="brush: java; title: ; notranslate">
public class Adventure {
  public static void main(String[] args){
    Injector injector = Guice.createInjector(new HeroModule());
    FrogMan hero = injector.getInstance(FrogMan.class);
    hero.fightCrime();
  }
}
</pre><p>Il est possible d&#8217;injecter une dépendance par :</p><ul><li>Constructeur, c&#8217;est la méthode la plus simple, par forcément la plus élégante en Spring</li><li>Méthode</li><li>Attribut de classe</li></ul><p>Cependant, un problème peut se poser par rapport à l&#8217;exemple précédent : comment injecter plusieurs véhicules ? Solution : il faut nommer les cibles en créant ses propres annotations pour l&#8217;injection :</p><pre class="brush: java; title: ; notranslate">
@Inject
public WeaselGirl(@Fast Vehicle vehicle) {
  this.vehicle = vehicle;
}
</pre><p>Code source du tissage :</p><pre class="brush: java; title: ; notranslate">
public class HeroModule implements Module {
 public void configure(Binder binder) {
    binder.bind(Vehicle.class).to(FrogMobile.class);
    binder.bind(Vehicle.class).annotatedWith(Fast.class).to(WeaselCopter.class);
  }
}
</pre><p>Code source de la déclaration de l&#8217;annotation :</p><pre class="brush: java; title: ; notranslate">
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.PARAMETER})
@BindingAnnotation
public @interface Fast {}
</pre><p>Les nouveautés de cette version sont présentées sur le site officiel : <a
href="http://code.google.com/p/google-guice/wiki/Changes20" title="Changes in Guice 2" >Changes in Guice 2</a>. On y trouve entre autre :</p><ul><li>Implémentation de l&#8217;AOP</li><li>Surcharge du binding d&#8217;un module à un autre</li><li>Binding des éléments d&#8217;un tableau <code>Set</code> ({{Multibinding}}) ou <code>Map</code> ({{Mapbinding}})</li><li>Convertisseur de type branchable, par exemple, pour convertir une chaîne de caractères en date</li></ul><p>Même si Guice est loin d&#8217;avoir la maturité de Spring ou même autant de fonctionnalités que ce dernier, il propose une approche de l&#8217;injection de dépendances très pragmatique.</p><p>Une étude sur la comparaison des versions Guice 1.0 et Spring 2.0.2 (<a
href="http://www.jroller.com/habuma/entry/guice_vs_spring_javaconfig_a" title="Guice vs. Spring JavaConfig: A comparison of DI styles" >Guice vs. Spring JavaConfig: A comparison of DI styles</a>) arrive aux conclusions suivantes :</p><ul><li>Performance : Guice est plus rapide, mais est-ce vraiment important car généralement les dépendances sont chargées au démarrage de l&#8217;application ?</li><li>Modèle de programmation Guice plus intrusif : il est dommage de devoir mettre un <code>@inject</code> dans les objets Guice qui peuvent être injectés</li><li>Spring AOP est plus puissante</li><li>Guice est plus facile à intégrer (il y a seulement 2 <em>Jars</em> à intégrer)</li></ul><p>À voir également : deux liens intéressants sur l&#8217;injection de dépendance issus de la documentation de <a
href="http://www.picocontainer.org/" title="PicoContainer" >PicoContainer</a>, autre implémentation pour l&#8217;injection de dépendance :</p><ul><li><a
href="http://picocontainer.org/patterns.html" title="Design patterns" >Design patterns</a>, règles a avoir en tête lorsque l&#8217;on fait de l&#8217;injection de dépendance</li><li><a
href="http://picocontainer.org/inversion-of-control-history.html" title="Inversion of Control history" >Inversion of Control history</a>, tout sur l&#8217;injection de dépendance</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/12/15/revue-de-presse-xebia-87/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/</link> <comments>http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#comments</comments> <pubDate>Mon, 08 Dec 2008 18:13:36 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[Hibernate Search]]></category> <category><![CDATA[IBM]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[REST]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Silverlight]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[Spring 3.0]]></category> <category><![CDATA[Spring Integration]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1112</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII JBoss AS 5, ce fut long mais c&#8217;est parti SpringSource tc Server : un dm Server sans ses modules Quoi de neuf dans Spring 3.0 M1 ? Sortie de Spring Integration 1.0.0 Sortie d&#8217;Hibernate Search 3.1 Agilité L&#8217;agilité chez IBM [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#JBossAScefutlongmaiscestparti">JBoss AS 5, ce fut long mais c&#8217;est parti</a></li><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#SpringSourcetcServerundmServer">SpringSource tc Server : un dm Server sans ses modules</a></li><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#QuoideneufdansSpringM">Quoi de neuf dans Spring 3.0 M1 ?</a></li><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#SortiedeSpringIntegration">Sortie de Spring Integration 1.0.0</a></li><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#SortiedHibernateSearch">Sortie d&#8217;Hibernate Search 3.1</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#LagilitchezIBM">L&#8217;agilité chez IBM</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#AupieddusapinJavaFXGA">Au pied du sapin : JavaFX GA</a></li><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#SilverlightsousLinux">Silverlight sous Linux</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#NouveaumodehostpourGWT">Nouveau mode hosté pour GWT 2.0</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="JBossAScefutlongmaiscestparti"></a>JBoss AS 5, ce fut long mais c&#8217;est parti</h4><p>Sacha Labourey, CTO de JBoss, nous avait parlé lors de <a
href="http://sacha.labourey.com/2008/12/03/paris-jug-you-rock/" title="sa venue au Paris JUG la semaine dernière" >sa venue au Paris JUG la semaine dernière</a> de l&#8217;imminence de cette annonce que la communauté attendait depuis longtemps : JBoss AS 5 est enfin releasé !</p><p><strong>Les principaux composants de JBoss AS 5</strong></p><ul><li><a
href="http://www.jboss.org/jbossmc/" title="JBoss Micro Container" >JBoss Micro Container</a> (MC) : remplaçant du JMX Kernel, MC est le conteneur du serveur d&#8217;applications. Il offre le cycle de vie des différents modules (installation, démarrage, arrêt, désinstallation).</li><li><a
href="http://www.jboss.org/jbossmessaging/" title="JBoss Messaging" >JBoss Messaging</a> (JMS) : déjà utilisé dans JBoss AS 4, JBoss Messaging est le successeur de JBoss MQ. La version 2 de JBoss Messaging est en cours de développement; les synergies avec <a
href="http://www.redhat.com/mrg/messaging/" title="Red Hat Messaging" >Red Hat Messaging</a> sont prévues ; les efforts pour faire converger les deux middlewares de message seront vraisemblablement importants.</li><li><a
href="http://www.jboss.org/jbosstm/" title="JBoss Transaction" >JBoss Transaction</a> : issu du rachat d&#8217;Arjuna Transaction Service en 2005, ce composant mature n&#8217;a pas connu d&#8217;évolution significative avec AS 5.</li><li><a
href="http://www.jboss.org/jbossws/" title="JBoss WS" >JBoss WS</a> : stack Web Service ; la multiplicité de ses implémentations SOAP (native, adapteur pour <a
href="https://metro.dev.java.net/" title="Glassfish Metro" >Glassfish Metro</a> ou pour <a
href="http://cxf.apache.org/" title="Apache CXF" >Apache CXF</a>) rend compliquée la compréhension de ce composant.</li><li>Clustering : la haute disponibilité et la réplication reposent sur le mature et dynamique <a
href="http://www.jboss.org/jbosscache/" title="JBoss Cache" >JBoss Cache</a> (aujourd&#8217;hui en version 3) qui repose lui-même sur la librairie de communication multicast <a
href="http://www.jboss.org/jgroups/" title="JGroups" >JGroups</a>.</li><li><a
href="http://www.jboss.org/jbossweb/" title="JBoss Web" >JBoss Web</a> : fort de son long passé de <em>commiter</em> Tomcat, JBoss package sa version optimisée du moteur de servlet de la fondation Apache.</li></ul><p><strong>Pourquoi JBoss a-t-il mis autant de temps à sortir cette version ? Des difficultés pour implémenter Java EE 5 ?</strong><br
/> JBoss n&#8217;a pas eu de difficultés particulières à implémenter les EJB 3 ou JPA qui étaient déjà disponibles dans JBoss AS 4.2. Java EE 5 est la partie émergée de l&#8217;iceberg AS 5. Ce qui a pris du temps à JBoss est la refonte complète de son serveur d&#8217;applications. Les fonctions structurelles du middleware (transactions, clustering, messaging, sécurité, administration, etc.) sont désormais séparées des applications déployées qui peuvent être <em>packagées</em> au format Java EE mais aussi OSGi, Spring, Ruby On Rails ou tout autre format dès lors qu&#8217;un <em>deployer</em> (i.e. adaptateur) est disponible.</p><p><strong>JBoss Micro Container est-il une victime du syndrome Not Invented Here ?</strong><br
/> La réponse est complexe et le choix de JBoss plein de mesure. Le projet MC a été lancé alors que la bataille (plus politique que technique) entre Java Module System et OSGi faisait rage. Sun misait sur le projet <a
href="https://hk2.dev.java.net/" title="HK2" >HK2</a> pour son serveur Glassfish et s&#8217;est finalement <a
href="http://blog.xebia.fr/2008/04/21/revue-de-presse-xebia-53/#JavaModuleSystemJSRvsOSGILarco" title="rabattu sur le conteneur OSGi Apache Felix" >rabattu sur le conteneur OSGi Apache Felix</a>. SpringSource a tellement <em>amélioré</em> OSGi que le résultat rendait OSGi méconnaissable (adieux les ServiceTracker et autres Declarative Services) ; le pari a réussi et Spring dm Server est en cours de standardisation par l&#8217;OSGi Alliance sous le nom de <a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#OSGiSpringdmServerstandardispo" title="Blueprint Component Model" >Blueprint Component Model</a>. JBoss, pourtant habitué des contributions aux standards Java (cf. JPA, Web Beans, etc.) a cette fois ci préféré commencer cavalier seul avec un Micro Container qui supporte OSGi comme il aurait pu supporter Java Module System.</p><p><strong>Si JBoss AS 5.0 est une refonte complète, il risque d&#8217;être buggué</strong><br
/> Le risque n&#8217;est pas nul, mais nous remarquerons que la plupart des composants fondamentaux sont matures et n&#8217;ont pas été impactés par la refonte 5.0 (transactions, messaging, etc.).</p><p><strong>Le chantier AS 5 a-t-il été trop ambitieux ?</strong><br
/> Les autres serveurs d&#8217;applications ont déjà été refondus (Websphere 6.1) ou sont en cours de refonte (Glassfish 3). Cette remise à plat était importante. Cependant, JBoss a pris beaucoup plus de temps qu&#8217;il ne le prévoyait et a dû changer certaines méthodes de travail pour atteindre son objectif. Sacha Labourey a notamment expliqué que le mécanisme de build a été changé en cours de route et que le travail open source collaboratif à distance par forum/mailing-list interposés avait touché ses limites.</p><p><strong>Les clients ont-ils perdu patience ? Ont-ils changé de serveur ?</strong><br
/> Les clients ont sûrement été déçus par l&#8217;attente mais pas tellement plus que les clients Websphere <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> et JBoss AS 4 proposait déjà les EJB 3 et JPA. Ensuite, Glassfish a surement pris des parts de marché à JBoss AS mais c&#8217;est plus probablement lié à l&#8217;essor de Glassfish qui se fait au détriment de ses concurrents JBoss, Websphere et Weblogic.</p><p>En conclusion, JBoss AS 5 est une bonne nouvelle pour l&#8217;Open Source Java et rappelle la vitalité du modèle économique du Professional Open Source que JBoss a contribué à inventer.</p><h4><a
name="SpringSourcetcServerundmServer"></a>SpringSource tc Server : un dm Server sans ses modules</h4><p>L&#8217;actualité Spring est particulièrement riche cette semaine : SpringSource a annoncé lors des conférences de <a
href="http://americas.springone.com/" title="SpringOne Americas" >SpringOne Americas</a> l&#8217;arrivée prochaine d&#8217;un nouveau serveur d&#8217;applications : le <a
href="http://www.springsource.com/products/suite/tcserver" title="tc Server" >tc Server</a>.  Non, il ne s&#8217;agit pas d&#8217;un second renommage de leur <a
href=" http://www.springsource.com/products/suite/dmserver" title="dm Server" >dm Server</a>, mais bel et bien d&#8217;un nouveau produit.  Comme son nom l&#8217;indique, tc Server  n&#8217;est ni plus ni moins qu&#8217;un Tomcat gonflé en fonctionnalités et en support, permettant de répondre aux problématiques de production.</p><p>Selon SpringSource, ce nouveau serveur est destiné à trois types d&#8217;utilisateurs :</p><ul><li>Les utilisateurs de Tomcat, désireux d&#8217;acquérir du support en production et/ou des fonctionnalités supplémentaires d&#8217;aide à la configuration et de diagnostics.</li><li>Les utilisateurs de serveurs d&#8217;applications JEE qui n&#8217;utilisent pas d&#8217;EJB, désireux de migrer vers une solution plus légère.</li><li>Les futurs utilisateurs de dm Server, désirant modulariser leur application.</li></ul><p>Par ailleurs, SpringSource a <a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#SpringSourcedvoilesaroadmap" title="récemment annoncé dans sa roadmap" >récemment annoncé dans sa roadmap</a> une compatibilité Tomcat dans sa prochaine version de dm Server (Jersey) prévue pour Q2 2009. À terme, ces deux serveurs ne risquent-ils pas de se marcher dessus ? Vu de l&#8217;extérieur, cela donne l&#8217;impression que ce nouveau tc Server a été créé dans le but de rassurer les utilisateurs : pas besoin d&#8217;être modulaire pour tourner sur une plateforme SpringSource.</p><p>Ce chevauchement dans l&#8217;offre nous laisse entrevoir une stratégie intéressante de la part de SpringSource :</p><ol><li>Attirer en douceur les utilisateurs via un simple support Tomcat avec tc Server.</li><li>Les aiguiller par la suite vers une solution plus complète basée sur dm Server.</li></ol><p>Pour cela, Spring compte tout d&#8217;abord mettre en avant ses fonctions Java EE classiques (monitoring avancé, transactions distribuées),  puis, dans un deuxième temps, ouvrir le développement sur un modèle de composants Spring Module. Tout l&#8217;enjeu de cette stratégie est de convaincre les exploitants. Une fois que dm Server sera suffisamment bien implanté, les développeurs devraient se mettre à déployer leurs propres modules OSGi.</p><p>Cette distinction, techniquement non nécessaire, nous montre encore à quel point la monétisation du libre et la vente de support restent difficiles. La tarification des services reste au centre de la stratégie (et c&#8217;est bien compréhensible) : avec ce nouveau serveur, SpringSource nous propose également une nouvelle grille de tarifications allégée.</p><h4><a
name="QuoideneufdansSpringM"></a>Quoi de neuf dans Spring 3.0 M1 ?</h4><p>Le premier milestone du Spring nouveau est arrivé, <a
href="http://blog.springsource.com/2008/12/05/spring-framework-30-m1-released/" title="annoncé par Jurgen Holler ce vendredi sur son blog" >annoncé par Jurgen Holler ce vendredi sur son blog</a>. Comme nous <a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#SpringSourcedvoilesaroadmap" title="l'annoncions dans une précédente revue de presse" >l&#8217;annoncions dans une précédente revue de presse</a>, Spring 3.0 M1 sort avec un léger retard par rapport à la roadmap Spring prévue.</p><p>Utilisateurs de Spring 2.5, les nouveautés apportées par cette nouvelle version ne devraient pas vous dépayser : peu de nouveautés fonctionnelles, mais un gros travail de refactoring interne.</p><p><strong>Modifications techniques internes :</strong></p><ul><li>Migration de gestionnaire de source : CVS vers SVN, dont voici <a
href="https://src.springframework.org/svn/spring-framework/" title="l'adresse" >l&#8217;adresse</a>.</li><li>Refactoring du projet en modules, le trunk contient une vingtaine de sous projets : <code>org.springframework.core</code>, <code>org.springframework.aop</code>, <code>org.springframework.expression</code> &#8230;</li><ul><li>Chaque module est commité avec sa configuration Eclipse prête à l&#8217;emploi, vous trouverez donc les <code>.project</code>, <code>.classpath</code> et même les répertoires <code>.settings</code> directement sur le svn.</li><li>Vous y trouverez également les fichiers de configuration de build Ivy et un début de configuration Maven. Cette dernière n&#8217;est probablement pas fonctionnelle : les derniers commits datent de fin d&#8217;octobre pour les fichiers Maven, alors que des modifications ont été effectuées plus récemment fin novembre sur la configuration Ivy. D’ailleurs, les <code>.classpath</code> ne vous y tromperont pas, ils contiennent tous la variable d’environnement <code>IVY_CACHE</code>.</li></ul><li>Refactoring des sources, chaque module utilise maintenant les fonctionnalités Java 5, le code interne en est simplifié.</li><li>Montée de version des tiers frameworks : JRuby 1.1 et  JUnit 4.5. La montée de version de JUnit simplifie l&#8217;utilisation de ses extensions.</li></ul><p><strong>Nouvelles fonctionnalités :</strong></p><ul><li>Arrivée de Spring EL utilisable dans n&#8217;importe quel composant Spring (y compris &#8216;core&#8217;). Vous pouvez par exemple utiliser la syntaxe #{ &#8230; } lors de la définition de vos beans (XML et/ou annotations) pour permettre de définir au runtime la valeur de certaines propriétés de vos <em>beans prototypes</em>.</li><li>Support de REST intégré dans Spring MVC.</li><li>&#8230; le reste à venir dans les milestones M2 et M3 qui suivront, prévus pour Q1 2009.</li></ul><p>Nous avions également publié un article en octobre présentant <a
href="http://blog.xebia.fr/2008/10/08/spring-30-le-grand-nettoyage-du-printemps/" title="les principales nouveautés de Spring 3.0" >les principales nouveautés de Spring 3.0</a>.</p><h4><a
name="SortiedeSpringIntegration"></a>Sortie de Spring Integration 1.0.0</h4><p>La version <a
href="http://www.springsource.org/node/843" title="1.0.0 GA de Spring Integration" >1.0.0 GA de Spring Integration</a>, le <em>&laquo;&nbsp;<a
href="http://blog.xebia.fr/2007/12/17/spring-integration-lavenement-des-lightweight-esb/" title="light weight ESB" >light weight ESB</a>&laquo;&nbsp;</em> de SpringSource a été annoncée cette semaine lors du dernier <a
href="http://americas.springone.com/" title="SpringOne Americas" >SpringOne Americas</a>.</p><p>Comme nous l&#8217;expliquions dans notre <a
href="http://blog.xebia.fr/2008/07/30/introduction-a-spring-integration/" title="Introduction à Spring Integration" >Introduction à Spring Integration</a>, cette implémentation légère des <a
href="http://activemq.apache.org/camel/enterprise-integration-patterns.html" title="Enterprise Integration Patterns" >Enterprise Integration Patterns</a> vise à simplifier le développement de solutions d&#8217;intégration d&#8217;entreprise et à faciliter l&#8217;adoption par les utilisateurs de Spring des principes <strong>EDA</strong> <em>(Event Driven Architecture)</em>.</p><h4><a
name="SortiedHibernateSearch"></a>Sortie d&#8217;Hibernate Search 3.1</h4><p>La version 3.1.0 d&#8217;Hibernate Search a été mise à disposition cette semaine. Comme l&#8217;explique <a
href="http://blog.emmanuelbernard.com/" title="Emmanuel Bernard" >Emmanuel Bernard</a> dans l&#8217;article <em>&laquo;&nbsp;<a
href="http://in.relation.to/Bloggers/HibernateSearch31IsOutPerformanceRobustnessAndNewFeaturesOnTheMenu" title="Hibernate Search 3.1 is out: performance, robustness and new features on the menu" >Hibernate Search 3.1 is out: performance, robustness and new features on the menu</a>&laquo;&nbsp;</em>, cette nouvelle version met l&#8217;accent sur l&#8217;amélioration des performances, la robustesse du code et l&#8217;<em>utilisabilité</em>.</p><p>Comme nous l&#8217;expliquions dans notre <a
href="http://blog.xebia.fr/2008/03/06/introduction-a-hibernate-search-googling-your-persistent-domain-model/" title="Introduction à Hibernate Search" >Introduction à Hibernate Search</a>, Hibernate Search est un <strong>moteur d&#8217;indexation et de recherche full-text</strong> reposant sur <a
href="http://lucene.apache.org/" title="Apache Lucene" >Apache Lucene</a>. Il prend ainsi en charge la gestion d&#8217;un index Lucene et sa synchronisation avec une structure objet persistée en base de données.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="LagilitchezIBM"></a>L&#8217;agilité chez IBM</h4><p><a
href="http://www.ambysoft.com/scottAmbler.html" title="Scott Ambler" >Scott Ambler</a>, responsable du développement agile chez IBM, a été <a
href="http://www.infoq.com/interviews/Agile-Scott-Ambler" title="interviewé par InfoQ" >interviewé par InfoQ</a> sur l&#8217;état présent de l&#8217;agilité et son futur.<br
/> En se basant sur l&#8217;<a
href="http://www.infoq.com/news/2008/05/agile-adoption-survey-2008" title="étude 2008 de Dr. Dobb's" >étude 2008 de Dr. Dobb&#8217;s</a>, il rappelle que 69% des organisations font au moins un projet agile. L&#8217;agilité est une réalité. Le TDD fait aussi parler de lui mais ceux qui le pratiquent sont moins nombreux.</p><p>Une autre étude a montré que les équipes agiles font autant de documentation que les équipes traditionnelles, et même plus de modélisation upfront (88% des équipes agiles), que ce soit sur papier ou avec des outils plus sophistiqués.<br
/> Abordant les problèmes liés à l&#8217;introduction de l&#8217;Agilité dans les grandes équipes, Scott cite les 2 points les plus courants qui sont les équipes de grande taille (5000 ?) et les équipes distribuées. Il ajoute un 3e point : la gouvernance.<br
/> L&#8217;Agilité permet une gouvernance plus efficace que les projets traditionnels, en laissant le contrôle du périmètre, du budget et de l&#8217;agenda aux intervenants (stakeholders).<br
/> Concernant les équipes distribuées, l&#8217;étude du Dr Dobb&#8217;s rapporte le succès des projets mesuré par leurs clients :</p><ul><li>équipes colocalisées : 83%</li><li>équipes proches (étages différents, bâtiments différents) : 72%</li><li>équipes distribuées (qui nécessitent l&#8217;avion) : 60%</li></ul><p>Scott conseille donc d&#8217;éviter les équipes distribuées. Si l&#8217;on ne peut vraiment pas, il conseille d&#8217;organiser les équipes en fonction de l&#8217;architecture afin de minimiser la communication entre les différents lieux. Cela nécessite notamment un &laquo;&nbsp;architecture owner&nbsp;&raquo;, responsable de l&#8217;architecture, mais qui ne reste pas dans sa tour d&#8217;ivoire comme on peut en voir sur certains projets.</p><p>L&#8217;autre conseil pour les équipes distribuées est de s&#8217;équiper de bons outils. Il présente le nouveau produit <a
href="http://www-01.ibm.com/software/awdtools/rtc/" title="Rational Team Concert" >Rational Team Concert</a>, basé sur Eclipse et la plateforme <a
href="https://jazz.net" title="Jazz" >Jazz</a>, qui facilite la collaboration de l&#8217;équipe.</p><p>Pour finir avec le futur de l&#8217;agilité, Scott reprend son <a
href="http://www.ddj.com/architect/210603550" title="analogie avec l'astronomie" >analogie avec l&#8217;astronomie</a> :</p><ul><li>Avant on pensait que &laquo;&nbsp;tout tourne autour de la Terre&nbsp;&raquo;. C&#8217;est la communauté traditionnelle qui pense que &laquo;&nbsp;tout tourne autour de l&#8217;engineering et de la documentation&nbsp;&raquo;.</li><li>Aujourd&#8217;hui la communauté agile pense que &laquo;&nbsp;tout tourne autour du soleil&nbsp;&raquo;, c&#8217;est-à-dire &laquo;&nbsp;autour du développeur&nbsp;&raquo;.</li><li>Demain nous verrons comme Newton que &laquo;&nbsp;tout tourne autour de tout&nbsp;&raquo;. Nous devons avoir une vision entreprise et non par silo.</li></ul><p>Avoir une vue d&#8217;entreprise sur l&#8217;informatique est extrêmement difficile, mais nécessaire pour construire des applications de niveau entreprise et de haute qualité.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="AupieddusapinJavaFXGA"></a>Au pied du sapin : JavaFX GA</h4><p>Après presque 2 ans d&#8217;attente, JavaFX est enfin disponible en version finale. Enfin pas tout à fait : JavaFX Mobile, initialement dans le scope de cette première version, est repoussé à février 2009, et les OS Linux et Solaris ne sont pas (encore) supportés.<br
/> Cette version 1.0 tient elle malgré tout <a
href="http://blog.xebia.fr/2008/10/03/ria-contest-flex-silverlight-gwt-echo3-javafx/#JavaFX" title="les promesses entrevues lors de la parution de la preview" >les promesses entrevues lors de la parution de la preview</a> ?<br
/> Et bien, pas vraiment.<br
/> Les défauts rédhibitoires que nous y avions décelés sont toujours là : le seul IDE de développement disponible est Netbeans (sans même l&#8217;inclusion d&#8217;un éditeur graphique), les composants graphiques de haut niveau (hormis les portages Swing) manquent toujours à l&#8217;appel&#8230;<br
/> Qu&#8217;est ce qu&#8217;apporte vraiment cette version 1.0 ? A première vue, l&#8217;effort a été porté sur la documentation : la Javadoc a été mise à jour et est relativement complète. <a
href="http://javafx.com/samples/" title="La galerie d'exemples et de tutoriaux 'officielle'" >La galerie d&#8217;exemples et de tutoriaux &#8216;officielle&#8217;</a> a été copieusement alimentée. On regrettera cependant que cette galerie mette l&#8217;accent sur le spectaculaire, plus que sur le fonctionnel (aucun exemple d&#8217;intégration avec un back end Java ou une base de données).<br
/> Au rayon des nouveautés, on notera <a
href="http://edageek.com/2008/05/07/rich-internet-application/" title="la présence de codecs audio et video" >la présence de codecs audio et video</a>, permettant d&#8217;intégrer facilement du contenu multimédia (par l&#8217;entremise d&#8217;un encodage en Flash).<br
/> Sur un niveau moins technique, on peut noter la présence de 2 plugins pour les produits Adobe, Photoshop et Illustrator, qui devraient faciliter les échanges entre web designers et développeurs J2EE.<br
/> A noter enfin, sur un plan plus marketing, la présence d&#8217;un émulateur mobile, qui préfigure ce que pourrait être JavaFx Mobile.<br
/> En conclusion, cette première version n&#8217;est pas vraiment au niveau des attentes qu&#8217;elle a suscitées. Cependant, nous restons une fois de plus sur l&#8217;agréable impression de pouvoir faire de jolies interfaces en Java.<br
/> A notre sens, la prochaine étape déterminante sera l&#8217;adhésion de la communauté à cette nouvelle technologie, qui devrait permettre l&#8217;émergence de composants de haut niveau (un travail auquel s&#8217;est déjà attelé <a
href="http://learnjavafx.typepad.com/" title="James Weaver" >James Weaver</a>), en espérant que ceux ci seront incorporés dans les prochaines versions.<br
/> Reste que le produit de Sun est en retard par rapport à ses concurrents, et que la volonté de couvrir toutes les plateformes à la fois (desktop, mobile, télévision) pourrait se révéler à court terme un handicap pour cette technologie émergente.<br
/> Alors, Sun s&#8217;est il fourvoyé avec Fx, <a
href="http://www.tbray.org/ongoing/When/200x/2008/11/24/What-Sun-Should-Do" title="comme le pense Tim Bray" >comme le pense Tim Bray</a> ? Seules les futures versions nous le diront.</p><h4><a
name="SilverlightsousLinux"></a>Silverlight sous Linux</h4><p>La <a
href="http://go-mono.com/moonlight/" title="version 1.0 beta de Moonlight" >version 1.0 beta de Moonlight</a> est disponible.<br
/> Moonlight est une implémentation open source de Silverlight pour Linux / Unix, portée par Novell et développée par <a
href="http://www.mono-project.com/Main_Page" title="le projet Mono" >le projet Mono</a>. Cette béta est disponible pour un grand nombre d&#8217;environnements (Ubuntu, Suze, Fedora&#8230;) en 32 ou 64 bits.<br
/> Elle permet l&#8217;exécution de scripts Silverlight 1.0, la diffusion de contenu (MediaPack 1.0)&#8230;<br
/> Elle sera disponible en version finale le 20 janvier 2009.<br
/> Pour pouvoir profiter au maximum de Silverlight sous Linux, il faudra attendre la version 2 de Moonlight (support complet de Silverlight 2.0 et des dernières innovations Microsoft). Elle devrait être disponible en béta courant avril, puis en finale durant septembre 2009.<br
/> <a
href="http://www.mono-project.com/MoonlightRoadmap" title="La roadmap complète" >La roadmap complète</a> est exposée sur le site du projet Mono.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="NouveaumodehostpourGWT"></a>Nouveau mode hosté pour GWT 2.0</h4><p>Les nouveautés des prochaines versions 1.6 et 2.0  de GWT continuent d&#8217;affluer.<br
/> Ainsi, après la possibilité de pouvoir <a
href="http://www.dng-consulting.com/blogs/index.php/2008/11/26/gwt-va-enfin-gaeacute-rer-les-aquot-gros?blog=1" title="fragmenter son application" >fragmenter son application</a>, c&#8217;est une fois de plus chez <a
href="http://www.dng-consulting.com/blogs/index.php?blog=1" title="Sami Jaber" >Sami Jaber</a> que l&#8217;on apprend en vidéo l&#8217;une des grosses fonctionnalités à venir : <a
href="http://www.dng-consulting.com/blogs/index.php/2008/12/06/une-daeacute-mo-du-futur-mode-hostaeacut?blog=1" title="le nouveau "Hosted Mode" de GWT 2.0" >le nouveau &laquo;&nbsp;Hosted Mode&nbsp;&raquo; de GWT 2.0</a>.<br
/> Alors qu&#8217;aujourd&#8217;hui ce mode se lance dans une nouvelle fenêtre de votre IDE, demain vous pourrez le lancer directement dans votre navigateur (en tout cas ceux gérés pour l&#8217;instant).<br
/> Le mode reste toutefois celui que l&#8217;on connaît à savoir que GWT <em>simule</em> un site compilé (moteur de rendu) i.e. qu&#8217;aucun <em>Javascript</em> n&#8217;est généré. L&#8217;intégration avec des plugins comme <em>Firebug</em> sera donc limitée&#8230; Le mode <em>Debug</em> et le rafraichissement du navigateur suite à modification du code GWT sont bien sûr conservés.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/</link> <comments>http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#comments</comments> <pubDate>Mon, 17 Nov 2008 18:04:04 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Adobe]]></category> <category><![CDATA[Cocomo]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[GlassFish]]></category> <category><![CDATA[Grails]]></category> <category><![CDATA[Hyperic]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[Sun]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=997</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Sun supprime 5.000 à 6.000 emplois dans la continuité de sa mutation en un acteur Open Source SpringSource dévoile sa roadmap RIA Le framework préféré des développeurs Flex Adobe lance Cocomo Le coin de la technique Essayez le nouvel algorithme [...]]]></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/17/revue-de-presse-xebia-83/#Sunsupprimeemploisdanslacontin">Sun supprime 5.000 à 6.000 emplois dans la continuité de sa mutation en un acteur Open Source</a></li><li><a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#SpringSourcedvoilesaroadmap">SpringSource dévoile sa roadmap</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#LeframeworkprfrdesdveloppeursF">Le framework préféré des développeurs Flex</a></li><li><a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#AdobelanceCocomo">Adobe lance Cocomo</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#EssayezlenouvelalgorithmeGarba">Essayez le nouvel algorithme Garbage First</a></li><li><a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#GestiondesdocumentsOffice">Gestion des documents Office 2007</a></li><li><a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#Hypericvlemonitoringdapplicati">Hyperic v4.0 : le monitoring d&#8217;applications Java passe par JMX</a></li><li><a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#SortiedeGrails">Sortie de Grails 1.0.4</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/17/revue-de-presse-xebia-83/#OpenSourceEchangecomptesrendus">Open Source eXchange : comptes-rendus des participants</a></li><li><a
href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#LAquariumParisledcembreinscrip">L&#8217;Aquarium à Paris le 12 décembre : inscriptions ouvertes</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="Sunsupprimeemploisdanslacontin"></a>Sun supprime 5.000 à 6.000 emplois dans la continuité de sa mutation en un acteur Open Source</h4><p>Sun annonce un plan de restructuration assez conséquent puisqu&#8217;il touchera plus de 15% de ses effectifs.</p><p>Triste nouvelle. La nécessaire mutation de ce fleuron de l&#8217;informatique des années 90, tiraillé entre son activité hardware en déclin <em>(traditionnellement haut de gamme, mais malheureusement à contre-courant d&#8217;investissements en berne en période de crise)</em> et son activité software <em>(en recherche d&#8217;un second souffle &#8211; le patron de la branche logicielle, Steve Green est parti Vendredi dernier)</em>, est en marche depuis plusieurs années et n&#8217;est pas une surprise.</p><p>L&#8217;annonce faite <a
href="http://www.sun.com/aboutsun/pr/2008-11/sunflash.20081114.1.xml" title="sur le site Corporate de Sun" >sur le site Corporate de Sun</a> est claire : Software et Open Source !<br
/> Espérons pour Sun que les récentes <em>(pour certaines judicieuses)</em> et coûteuses acquisitions porteront leurs fruits.</p><p>Si nous osions, nous dirions que, toute activité hardware mise à part, Sun ressemble de plus en plus à des pures players de l&#8217;Open Source au même titre que Redhat par exemple.</p><p>Il n&#8217;est en effet pas surprenant que Sun ait choisi cette voie. Lors de la conférence de Malaga des partenaires de Redhat, à laquelle Xebia était invitée, James Whitehust nous époustouflait en nous annonçant que sa marge et sa croissance étaient parmi les plus élevées de l&#8217;industrie logicielle <em>(information vérifiée et qui s&#8217;avère exacte)</em>.</p><p>Bonne continuation à Sun dans cette voie, elle est légitime. Et bonne chance avec la prometteuse gamme Sun Storage 7000, un <a
href="http://bigtech.blogs.fortune.cnn.com/2008/11/12/sun-gambles-big-as-outlook-darkens/" title="condensé de hardware, d'open source et d'innovation" >condensé de hardware, d&#8217;open source et d&#8217;innovation</a> dans le lignée du nouveau modèle Sun !</p><h4><a
name="SpringSourcedvoilesaroadmap"></a>SpringSource dévoile sa roadmap</h4><p>Vous avez probablement entendu parler des rencontres Spring qui se sont déroulées jeudi dernier. Nous ne résumerons pas ici le contenu de l&#8217;ensemble des conférences, d&#8217;autres blogs s&#8217;en sont déjà chargés avec brio <em>(cf liens annexes)</em>. Si, dans l&#8217;ensemble, les conférences étaient plutôt réussies, nous avouons être un peu restés sur notre faim :</p><ul><li>Les discussions ont beaucoup tourné autour du <a
href="http://www.springsource.com/g2one" title="rachat par SpringSource de G2One" >rachat par SpringSource de G2One</a> sans pour autant révéler clairement la place de Groovy et Grails dans la stack Spring. Elles ont tout de même permis de servir de point de départ à des discussions off bien plus intéressantes lors de la pause.</li><li>Aucune explication sur les <em>(petits)</em> retards de la M1 de Spring 3.0, aucune référence à <a
href="http://www.springsource.org/javaconfig" title="Spring JavaConfig" >Spring JavaConfig</a> ni à l&#8217;intégration des Servlet 3.0, pas de communication sur le contenu des M2 et M3, bref, rien de neuf depuis le billet que nous <a
href="http://blog.xebia.fr/2008/10/08/spring-30-le-grand-nettoyage-du-printemps/" title="avons publié le mois dernier sur Spring 3.0" >avons publié le mois dernier sur Spring 3.0</a>.</li></ul><p>Heureusement donc que ce rachat, annoncé en début de semaine, et la présence de <strong>speakers d&#8217;exceptions</strong> ont permis de pimenter cette demi-journée.</p><p>La partie la plus intéressante a été probablement celle de Peter Cooper Ellis nous présentant de la roadmap Spring dont voici les points à retenir :</p><ul><li>Concernant <a
href="http://blog.xebia.fr/2008/10/08/spring-30-le-grand-nettoyage-du-printemps/" title="Spring 3.0" >Spring 3.0</a> : le premier milestone doit sortir d&#8217;ici fin novembre. Il sera probablement suivi d&#8217;un M2 et d&#8217;un M3 avant l&#8217;arrivée d&#8217;une Release Candidate prévue en mars 2009. La sortie officielle devrait arriver en avril si tout se passe bien.</li><li>Sortie de <a
href="http://blog.xebia.fr/2008/07/30/introduction-a-spring-integration/" title="Spring Integration" >Spring Integration</a> d&#8217;ici la fin de l&#8217;année.</li><li>La version 1.2 de Spring DM devrait sortir durant le premier trimestre 2009 offrant le support au <a
href="http://felix.apache.org/site/apache-felix-configuration-admin-service.html" title="Configuration Admin service" >Configuration Admin service</a>. Elle sera suivie peu de temps après par la version 2.0 qui implémentera <em>l&#8217;OSGi Blueprint Service</em> (RFC 124) partie <a
href="http://www.osgi.org/download/osgi-4.2-early-draft.pdf" title="d'OSGi R4.2" >d&#8217;OSGi R4.2</a>. Spring DM 2.0 sera d&#8217;ailleurs probablement la <em>reference implementation</em> de ces spécifications. Sa date de sortie est prévue pour le second trimestre 2009.</li><li>En parallèle à cela, deux nouvelles versions de Spring dmServer sont planifiées l&#8217;année prochaine. La première, dmServer Jersey, offrira, entre autres, une compatibilité Tomcat. Cette version devrait voir le jour au second trimestre 2009. L&#8217;autre version est prévue pour fin 2009 : dmServer Ockney. En voici quelques nouveautés : load balancer dynamique, enregistrement et exécution de scripts sur la console &#8230;</li><li>Notons également au premier trimestre 2009 : une mise à jour de Spring IDE <em>(2.5)</em> et les versions 1.6 de Groovy et 1.1 de Grails, dont Guillaume Laforge vente les mérites depuis la <a
href="http://blog.xebia.fr/2008/09/10/paris-jug-resume-de-la-soiree-groovy-et-grails/" title="soirée Groovy du Paris JUG" >soirée Groovy du Paris JUG</a>.</li><li>Mais c&#8217;est le second trimestre qui sera le plus chargé avec au programme : Spring Batch 2.0, Spring Security 2.5, Spring ROO et Spring Web. La version 2.0 de Spring Batch apportera une mise à jour importante de ce framework : passage à Java 5, configuration via annotations, on parle également d&#8217;une éventuelle intégration avec la stack apportée par G2One. Vous aurez également remarqué la présence d&#8217;un nouveau framework baptisé Spring ROO. Il s&#8217;agirait d&#8217;un framework RAD / DDD de génération de codes privilégiant les conventions à la configuration <em>(tiens, tiens, ça nous rappelle quelque chose)</em>. Ici encore, aucune information n&#8217;est donnée quant à la place de ce framework vis-à-vis de Grails.</li></ul><div
align="center"><img
src="http://blog.xebia.fr/wp-content/uploads/2008/11/spring-roadmap.jpg" alt="" title="spring-roadmap" width="500" height="186" class="aligncenter size-full wp-image-999" /></div><p>Notez que ce planning ne se veut ni complet ni définitif, certaines de ces dates seront très probablement amenées à évoluer.</p><p><strong>Liens connexes :</strong></p><ul><li>Consultez <a
href="http://www.rencontres-spring.com/post/2008/11/04/Agenda" title="l'agenda de la demi-journée" >l&#8217;agenda de la demi-journée</a>.</li><li>Téléchargez-les <a
href="http://www.rencontres-spring.com/post/2008/11/14/Merci-a-tous-mise-a-disposition-des-slides" title="slides des conférences" >slides des conférences</a>.</li><li>Remerciements post-conférences par <a
href="http://www.springsource.com/node/854" title="Julien Dubois" >Julien Dubois</a>.</li><li>Résumé de la demi-journée par <a
href="http://www.insideit.fr/post/2008/11/13/les-Rencontres-Spring-2008" title="Pierre Mage" >Pierre Mage</a>.</li><li>Résumé de la demi-journée par <a
href="http://blog.octo.com/index.php/2008/11/13/184-les-rencontres-spring-2008" title="Olivier Mallassi" >Olivier Mallassi</a>.</li><li>Résumé de la demi-journée par <a
href="http://www.touilleur-express.fr/2008/11/13/compte-rendu-des-rencontres-spring-2008/" title="Nicolas Martignole" >Nicolas Martignole</a>.</li><li>Autres billets : <a
href="http://www.tomsquest.com/blog/spring-dm-server-le-pari-fou/" title="Spring dmServer, le pari fou ?" >Spring dmServer, le pari fou ?</a>, <a
href="http://www.tomsquest.com/blog/tuning-de-tomcat-par-mark-thomas/" title="Tuning Tomcat" >Tuning Tomcat</a> par Thomas Queste.</li></ul><h3><a
name="RIA"></a>RIA</h3><h4><a
name="LeframeworkprfrdesdveloppeursF"></a>Le framework préféré des développeurs Flex</h4><p>Rich Tetrola a lancé la semaine dernière un <a
href="http://www.insideria.com/2008/11/new-poll-which-flex-framework.html" title="sondage" >sondage</a> sur le framework préféré des développeurs Flex. Et voici le <a
href="http://www.insideria.com/2008/11/poll-results-which-flex-framew.html" title="résultat" >résultat</a>. PureMVC remporte le sondage à la surprise de l&#8217;auteur lui-même qui misait plutôt sur Cairngorm. Les candidats au titre de framework préféré des développeurs Flex étaient :</p><ul><li><a
href="http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm;jsessionid=F94BB8C296D6BDBBB5F4410E67CF0959" title="Cairngorm" >Cairngorm</a> : une micro architecture fournissant plusieurs motifs de conception <em>(notamment le Modèle-Vue-Contrôleur)</em>.</li><li><a
href="http://puremvc.org/" title="PureMVC" >PureMVC</a> : un framework permettant de concevoir des applications basées sur le motif de conception Modèle-Vue-Contrôleur.</li><li><a
href="http://mate.asfusion.com/" title="Mate" >Mate</a> : un framework qui gère les évènements dont voici une démonstration <a
href="http://nwebb.co.uk/videotutorials/mate_helloworld/" title="Hello World" >Hello World</a>.</li><li><a
href="http://code.google.com/p/swizframework/" title="Swiz" >Swiz</a> : un framework facilitant le développement d&#8217;applications riches.</li><li><a
href="http://projects.simb.net/easyMVC/" title="EasyMVC" >EasyMVC</a> : il permet également de concevoir des applications sur le motif de conception Modèle-Vue-Contrôleur.</li><li><a
href="http://ruboss.com/" title="Ruboss" >Ruboss</a> : il facilite le développement d&#8217;application Flex/Rails.</li></ul><p>Cairngorm, bien qu&#8217;il soit un produit d&#8217;Adobe Labs, n&#8217;a pas remporté le succès attendu à cause de sa complexité, c&#8217;est ce qui ressort des commentaires. Peut être est ce à cause de son <a
href="http://blog.iconara.net/2008/04/13/architectural-atrocities-part-x-cairngorms-model-locator-pattern/ " title=""ModelLocator fourre tout"" >&laquo;&nbsp;ModelLocator fourre tout&nbsp;&raquo;</a>. Les résultats sont intéressants mais il ne faut pas les prendre au pied de la lettre. Tous ces frameworks ont pour but de mettre en place de bonnes pratiques dans le développement d&#8217;applications riches. Chacun dispose d&#8217;avantages et d&#8217;inconvénients à bien évaluer lorsqu&#8217;on veut choisir d&#8217;utiliser l&#8217;un de ces frameworks.</p><h4><a
name="AdobelanceCocomo"></a>Adobe lance Cocomo</h4><p>Avec cette première version bêta dans les <a
href="http://labs.adobe.com/" title="labs" >labs</a>, Adobe étoffe encore son offre RIA.<br
/> Cocomo est une plateforme Flex permettant au développeur d&#8217;ajouter des capacités <em>&laquo;&nbsp;sociales&nbsp;&raquo;</em> aux applications RIA. Cocomo mêle une partie cliente Flex et les infrastructures réseau mises à disposition par Adobe. En bref, il permet de facilement mettre en place des outils collaboratifs dans vos applications Flex. La version bêta propose déjà le support de :</p><ul><li>Conférences audio <em>(par VoIP)</em>.</li><li>Conférences vidéo <em>(par Webcam)</em>.</li><li>Chat texte.</li><li>Echange de fichiers.</li><li>Gestion des utilisateurs.</li><li>Et d&#8217;autres choses à découvrir.</li></ul><p>Pour plus d&#8217;informations rendez vous sur le site d&#8217;Adobe : <a
href="http://labs.adobe.com/technologies/cocomo/" title="Présentation de Cocomo" >Présentation de Cocomo</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="EssayezlenouvelalgorithmeGarba"></a>Essayez le nouvel algorithme Garbage First</h4><p>Danny Coward, dont nous avons déjà parlé à plusieurs reprises, a publié cette semaine sur son blog un billet <a
href="http://blogs.sun.com/theplanetarium/entry/java_vm_trying_a_new" title="annonçant la disponibilité" >annonçant la disponibilité</a> du nouvel algorithme pour le ramasse-miettes Java sur le <a
href="http://download.java.net/jdk7/" title="dernier build du JDK 7" >dernier build du JDK 7</a> <em>(bon courage pour l&#8217;installer &#8230;)</em>. Trois saisons ont passé depuis la publication sur notre blog d&#8217;un article présentant le fonctionnement de celui-ci. Son principe n&#8217;a pas changé, vous pouvez donc toujours vous y référer si le sujet vous intéresse : <a
href="http://blog.xebia.fr/2008/03/12/gc-generationnels-traditionnels-jdk6-vs-gc-garbage-first-jdk7/" title="GC générationnels traditionnels (JDK 6) VS Garbage First (JDK 7)" >GC générationnels traditionnels <em>(JDK 6)</em> VS Garbage First <em>(JDK 7)</em></a>.</p><p>À retenir sur ce nouvel algorithme, Garbage First <em>(G1)</em> :</p><ul><li>Il est destiné à remplacer le <em>parrallel and concurrent mark and sweep</em>.</li><li>Il devrait être <strong>activé par défaut</strong> dès le JDK 7.</li><li>Il propose un <strong>nouveau découpage du tas</strong> : la taille des zones mémoire se réduit, plus de zones sont créées en contrepartie.</li><li>Il permet également d&#8217;exploiter les forces des architectures multicœurs.</li><li>Il se veut plus prédictible et moins intrusif en offrant par exemple des <strong>garanties sur des temps de pauses</strong>.</li><li>Il permet en moyenne d&#8217;obtenir un <strong>meilleur débit</strong> de nettoyage, tout en offrant une implémentation <strong>simple à comprendre</strong>.</li></ul><h4><a
name="GestiondesdocumentsOffice"></a>Gestion des documents Office 2007</h4><p>La société <a
href="http://www.aspose.com/" title="Aspose" >Aspose</a> annonce la sortie d&#8217;une nouvelle version de son produit <a
href="http://www.aspose.com/community/blogs/aspose.words/archive/2008/11/07/this-aspose-words-for-java-2-6-0-released.aspx" title="Aspose.Word" >Aspose.Word</a> permettant de gérer nos fichiers <strong>Word 2007</strong>, les fameux <em>.docx</em> de <strong>Microsoft Office 2007</strong> <em>(annonce relayée par <a
href="http://www.theserverside.com/news/thread.tss?thread_id=51816" title="The Server Side" >The Server Side</a>)</em>.</p><p>Cette 2.6.0 ajoute l&#8217;importante fonctionnalité de pouvoir charger un fichier Word existant, rendant possible l&#8217;édition de celui-ci. Un produit très complet donc, qui gère aussi les images, les zones de texte, les objets OLE et Active X et bien d&#8217;autres fonctionnalités de Microsoft Word.</p><p>A noter que la gestion des fichiers <strong>Excel 2007</strong> <em>(.xlsx)</em> et <strong>PowerPoint 2007</strong> <em>(.pptx)</em> est en très bonne voie chez <a
href="http://poi.apache.org/" title="Apache POI" >Apache POI</a>, le support du format OOXML étant déjà disponible dans POI en version <a
href="http://www.apache.org/dyn/closer.cgi/poi/dev/" title="3.5 beta 3" >3.5 beta 3</a>. Ce support est désormais une priorité pour le projet. Rappelons que depuis quelques mois <a
href="http://www.microsoft.com/presspass/press/2008/mar08/03-25SourcesensePR.mspx" title="Microsoft est partenaire du projet Apache POI" >Microsoft est partenaire du projet Apache POI</a> et contribue ainsi à l&#8217;intégration de son format dans POI.</p><h4><a
name="Hypericvlemonitoringdapplicati"></a>Hyperic v4.0 : le monitoring d&#8217;applications Java passe par JMX</h4><p><a
href="http://www.hyperic.com/products/hq_oss.html" title="Hyperic HQ" >Hyperic HQ</a>, l&#8217;outil de supervision choisi par Iona <em>(<a
href="http://fusesource.com/products/fuse-hq/" title="Fuse HQ" >Fuse HQ</a>)</em>, Redhat <em>(<a
href="http://www.jboss.com/products/jbosson" title="JBoss Operations Network" >JBoss Operations Network</a>)</em> et SpringSource <em>(<a
href="http://www.springsource.com/products/suite/ams" title="Application Management Suite" >Application Management Suite</a>)</em>, dévoile cette semaine sa version 4.0 dont une des nouveautés clefs est le nouveau <a
href="http://support.hyperic.com/display/DOC/ui-Monitor.Server.MbeanBrowser" title="JMX MBean Browser" >JMX MBean Browser</a>.</p><p>Nous retiendrons de cette annonce que <strong>JMX est la technologie incontournable pour superviser des applications Java</strong>. Le développement d&#8217;indicateurs en MBean JMX est aujourd&#8217;hui très facile pour les équipes applicatives avec des frameworks comme <a
href="http://static.springframework.org/spring/docs/2.5.x/reference/jmx.html" title="Spring JMX" >Spring JMX</a> et la consultation de ces informations est banalisée avec l&#8217;incontournable <a
href="https://visualvm.dev.java.net/description.html" title="Visual VM" >Visual VM</a> <em>(cf <a
href="http://blog.xebia.fr/2008/10/22/diagnostic-dune-jvm-a-distance/" title="Blog Xebia : Diagnostique d'une JVM à distance" >Blog Xebia : Diagnostique d&#8217;une JVM à distance</a>)</em>.</p><p>Ne pas s&#8217;intégrer facilement à JMX est aujourd&#8217;hui un très sévère handicap pour une solution de supervision d&#8217;applications Java.</p><h4><a
name="SortiedeGrails"></a>Sortie de Grails 1.0.4</h4><p>La sortie officielle de Grails 1.0.4 vient d&#8217;être annoncée par SpringSource. Pour ceux qui ne le connaissent pas, Grails est un framework orienté web écrit en Java et Groovy et placé sous licence Apache. Il s&#8217;inspire fortement du framework Rails <em>(Ruby on Rails)</em>. Mais contrairement à Rails, Grails est ancré complètement dans l&#8217;univers Java, et repose sur des frameworks très connus comme Spring ou Hibernate.</p><p>Cette nouvelle version propose des nouvelles fonctionnalités pour une meilleure intégration avec Spring et Hibernate, un support des tags JSP dans GSP, de nouveaux plugins pour Java Content Repository <em>(JCR API)</em>, Java Persistence API <em>(JPA)</em> et l&#8217;api Portlet.</p><p>L&#8217;année prochaine s&#8217;annonce très prometteuse, avec la possibilité d&#8217;intégration de Groovy avec Grails et des produits du portefeuille Spring comme Spring Batch, Spring Integration, et Spring dm Server.</p><p>Autres liens :</p><ul><li>Le site officiel de <a
href="http://grails.org/" title="Grails" >Grails</a>.</li><li>La documentation officielle : <a
href="http://grails.org/doc/1.0.4" title="http://grails.org/doc/1.0.4" >http://grails.org/doc/1.0.4</a>.</li></ul><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="OpenSourceEchangecomptesrendus"></a>Open Source eXchange : comptes-rendus des participants</h4><p>Si vous n&#8217;avez pas pu assister à la journée <a
href="http://blog.xebia.fr/2008/11/14/conference-open-source-exchange-un-grand-merci-et-a-lannee-prochaine-si-vous-le-voulez-bien/" title="OpenSource Exchange" >OpenSource Exchange</a> organisée conjointement par Skills Matter et Xebia de la semaine dernière, nous vous proposons ici en rattrapage quelques-uns des retours effectués par les participants à cette journée.</p><ul><li><a
href="http://ericlefevre.net/wordpress/2008/11/12/back-from-open-source-exchange/" title="Éric Lefevre met à disposition sur son blog" >Éric Lefevre met à disposition sur son blog</a> un compte rendu synthétisant l&#8217;ensemble de la journée.</li><li>Olivier Croisier a quant à lui effectué une série d&#8217;articles fort intéressante sur chacune des conférences :</li><ul><li>Compte rendu <a
href="http://olivier.croisier.free.fr/blog/index.php?2008/11/13/119-opensource-exchange-compte-rendu" title="SpringSource dmServer" >SpringSource dmServer</a>, dont la conférence était présentée par <a
href="http://www.skillsmatter.com/expert-profile/home/michael-isvy" title="Michael Isvy" >Michael Isvy</a>.</li><li>Compte rendu <a
href="http://olivier.croisier.free.fr/blog/index.php?2008/11/14/120-opensource-exchange-compte-rendu-sur-exo-platform" title="eXo Platform" >eXo Platform</a>, dont la conférence était présentée par <a
href="http://www.skillsmatter.com/expert-profile/home/tugdual-grall" title="Tugdal Grall" >Tugdal Grall</a>.</li><li>Compte rendu <a
href="http://olivier.croisier.free.fr/blog/index.php?2008/11/14/122-opensource-exchange-compte-rendu-sur-jee6" title="Java EE 6" >Java EE 6</a>, dont la conférence était présentée par <a
href="http://skillsmatter.com/expert-profile/home/antonio-gonclaves" title="Antonio Goncalves" >Antonio Goncalves</a>.</li><li>Compte rendu <a
href="http://olivier.croisier.free.fr/blog/index.php?2008/11/14/121-opensource-exchange-compte-rendu-sur-groovy-et-grails" title="Groovy" >Groovy</a>, dont la conférence était présentée par <a
href="http://www.skillsmatter.com/expert-profile/home/guillaume-laforge" title="Guillaume Laforge" >Guillaume Laforge</a>.</li><li>Compte rendu <a
href="http://olivier.croisier.free.fr/blog/index.php?2008/11/15/123-opensource-exchange-compte-rendu-sur-glassfish-v3" title="Glassfish v3" >Glassfish v3</a>, dont la conférence était présentée par <a
href="http://blogs.sun.com/alexismp/" title="Alexis Moussine-Pouchkine" >Alexis Moussine-Pouchkine</a>.</li><li>Compte rendu <a
href="http://olivier.croisier.free.fr/blog/index.php?2008/11/15/124-opensource-exchange-compte-rendu-sur-portlets-20" title="Portlet 2.0" >Portlet 2.0</a>, dont la conférence était présentée par <a
href="http://www.skillsmatter.com/expert-profile/home/christophe-laprun" title="Christophe Laprun" >Christophe Laprun</a>.</li><li>Compte rendu <a
href="http://olivier.croisier.free.fr/blog/index.php?2008/11/16/125-opensource-exchange-compte-rendu-sur-hadoop" title="Hadoop" >Hadoop</a>, dont la conférence était présentée par <a
href="http://skillsmatter.com/expert-profile/home/hugues-le-bars" title="Hugues Le Bars" >Hugues Le Bars</a>.</li></ul></ul><p>Nous profitons de cette revue de presse pour les remercier.</p><p>Vous pouvez également nous proposer d&#8217;autres comptes-rendus si vous le désirez.</p><h4><a
name="LAquariumParisledcembreinscrip"></a>L&#8217;Aquarium à Paris le 12 décembre : inscriptions ouvertes</h4><p>Nous en parlions <a
href="http://blog.xebia.fr/2008/11/10/revue-de-presse-xebia-82/#JourneGlassFishetJavaParischez" title="la semaine dernière" >la semaine dernière</a>, Sun organise le vendredi 12 décembre une journée gratuite &laquo;&nbsp;GlassFish et Java&nbsp;&raquo; dans ses locaux au 42, avenue d&#8217;Iéna à Paris.<br
/> Cette journée a été baptisée &laquo;&nbsp;<a
href="http://fr.sun.com/sunnews/events/2008/dec/open_source/agenda.jsp" title="L'Aquarium à Paris" >L&#8217;Aquarium à Paris</a>&nbsp;&raquo; et 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 <em>(spec lead)</em>, Richard Bair <em>(tech lead)</em>, Paul Sandoz <em>(spec lead)</em>, Linda Schneider <em>(tech lead)</em>, Jean-François Arcand <em>(tech lead)</em>, etc&#8230;</p><p>Les <a
href="http://fr.sun.com/sunnews/events/2008/dec/open_source/" title="inscriptions" >inscriptions</a> sont désormais ouvertes.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Conférence Open Source eXchange :  un grand merci et à l&#8217;année prochaine, si vous le voulez bien !!!</title><link>http://blog.xebia.fr/2008/11/14/conference-open-source-exchange-un-grand-merci-et-a-lannee-prochaine-si-vous-le-voulez-bien/</link> <comments>http://blog.xebia.fr/2008/11/14/conference-open-source-exchange-un-grand-merci-et-a-lannee-prochaine-si-vous-le-voulez-bien/#comments</comments> <pubDate>Fri, 14 Nov 2008 13:21:25 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Divers]]></category> <category><![CDATA[Groovy]]></category> <category><![CDATA[Hadoop]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Portlet]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=992</guid> <description><![CDATA[La conférence Open Source eXchange que Xebia et Skills Matter ont conjointement organisé cette semaine en guise d&#8217;inauguration de leur partenariat a été une très bonne première édition. Nous remercions tout particulièrement les intervenants à savoir : Michael Isvy. Tugdual Grall. Antionio Goncalves. Guillaume Laforge (dans le cœur de l&#8217;actualité SpringSource). Alexis Moussine-Pouchkine. Christophe Laprun. [...]]]></description> <content:encoded><![CDATA[<p>La conférence Open Source eXchange que Xebia et <a
href="http://www.skillsmatter.com/">Skills Matter</a> ont conjointement organisé cette semaine en guise d&#8217;inauguration de <a
href="http://blog.xebia.fr/2008/07/09/partenariat-skills-matter-et-xebia/">leur partenariat</a> a été une très bonne première édition.<br
/> Nous remercions tout particulièrement les intervenants à savoir :</p><ul><li><a
href="http://www.skillsmatter.com/expert-profile/home/michael-isvy">Michael Isvy</a>.</li><li><a
href="http://www.skillsmatter.com/expert-profile/home/tugdual-grall">Tugdual Grall</a>.</li><li><a
href="http://www.skillsmatter.com/expert-profile/home/antonio-gonclaves">Antionio Goncalves</a>.</li><li><a
href="http://www.skillsmatter.com/expert-profile/home/guillaume-laforge">Guillaume Laforge</a> <em>(dans le cœur de l&#8217;actualité SpringSource)</em>.</li><li><a
href="http://blogs.sun.com/alexismp/">Alexis Moussine-Pouchkine</a>.</li><li><a
href="http://www.skillsmatter.com/expert-profile/home/christophe-laprun">Christophe Laprun</a>.</li><li><a
href="http://www.skillsmatter.com/expert-profile/home/hugues-le-bars">Hugues Le Bars</a>.</li></ul><p>Le Vidcast de la conférence sera bientôt disponible sur notre blog ainsi que sur le site de Skills Matter.</p><p>Nous souhaitons bien entendu reconduire cet évènement l&#8217;année prochaine.</p><p>Xebia et Skills Matter</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/11/14/conference-open-source-exchange-un-grand-merci-et-a-lannee-prochaine-si-vous-le-voulez-bien/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> </channel> </rss>
