Skip to content

Methods & Tools

Blog Xebia France - J2EE, Agilité et SOA
Syndiquer le contenu Blog Xebia France
J2EE, Agilité et SOA
Mis à jour : il y a 2 heures 21 min

Spring, Hibernate, DBUnit et Surefire – Parallélisez vos tests

ven, 02/03/2012 - 07:17

Les DAO (Data Access Object) ou repository des applications contiennent souvent de l’information importante sur la façon dont les donnĂ©es d’une base doivent ĂŞtre consultĂ©es. Cette information prend la forme d’une logique mĂ©tier qui est encodĂ©e dans un ou plusieurs langages, souvent un langage dĂ©claratif (SQL, HSQL, JPQL, etc.) et un langage impĂ©ratif (Java, Groovy, Scala, etc.).
Tester cette logique d’accès polyglotte peut s’avĂ©rer complexe et lent car ce type de test se prète mal aux techniques classiques de mock et nĂ©cessite plutĂ´t l’Ă©criture de tests d’intĂ©gration qui chargent une partie du contexte rĂ©el d’exĂ©cution. Par consĂ©quent, les tests de cette couche sont parfois dĂ©laissĂ©s, voire abandonnĂ©s.

Cet article se propose de vous montrer comment rĂ©aliser de tels tests, avec un niveau d’isolation suffisant pour la parallĂ©lisation dans un processus multithread, tout en essayant de trouver le meilleur compromis avec le temps d’exĂ©cution de chaque test. Ces tests sont prĂ©sentĂ©s dans une configuration très classique utilisant Spring et JPA/Hibernate.
L’implĂ©mentation utilise une base HSQLDB et quelques bibliothèques pour faciliter l’Ă©criture du code, en essayant de rester aussi lĂ©ger que possible. Les tests sont isolĂ©s pour que vous puissiez activer l’exĂ©cution parallèle du plugin Surefire de Maven au niveau des classes de test. Vous pourrez facilement dĂ©river l’implĂ©mentation nĂ©cessaire Ă  isoler vos tests au niveau des mĂ©thodes si vous le souhaitez.

Lire la suite de cet article …

Catégories: Blog Société

Java EE 6, une plateforme simple et légère. Spring n’a qu’à bien se tenir !

mer, 02/01/2012 - 05:20

La plateforme Java EE conserve de nos jours encore une mauvaise rĂ©putation. Les fameux EJB 2 et conteneurs lourds dĂ©marrant en plusieurs minutes vous rappelleront quelques bons souvenirs. L’arrivĂ©e de Spring a ouvert la voie aux conteneurs lĂ©gers, Ă  l’inversion de contrĂ´le, ou encore Ă  l’injection de dĂ©pendances; et est devenue la solution de rĂ©fĂ©rence. Cependant, la plateforme Java EE a beaucoup Ă©voluĂ© entre temps.

Nous allons voir que Java EE 6 n’a maintenant rien Ă  envier Ă  Spring. Cette plateforme est devenue lĂ©gère et simple Ă  prendre en main. Toutes les spĂ©cifications ne seront pas abordĂ©es en dĂ©tails.  Nous parlerons plutĂ´t de conteneurs lĂ©gers et testables, de managed beans, d’EJB Lite, ainsi que des nombreux services et patterns offert par la plateforme.  Nous terminerons par la spĂ©cification CDI et ses extensions portables, qui offrent de belles perspectives Ă  la plateforme Java EE 6.

Lire la suite de cet article …

Catégories: Blog Société

Revue de Presse Xebia

mar, 01/31/2012 - 16:55

Revue de Presse Xebia
La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.

Actualité éditeurs / SSII

RIA

Le coin de la technique

Lire la suite de cet article …

Catégories: Blog Société

Atelier performance avec Kirk Pepperdine

jeu, 01/26/2012 - 05:11

Avec cette vidĂ©o vous allez dĂ©couvrir comment Kirk a procĂ©dĂ© lors de cet atelier pour identifier les points d’amĂ©lioration d’un système et la manière de les rĂ©soudre. Tout cela sans prĂ©paration initiale ni code source : du live optimizing !
Écoutez Ă©galement Lire la suite de cet article …

Catégories: Blog Société

Xebia accueille la 19ème soirée du Paris Scala User Group

mer, 01/25/2012 - 06:38

La prochaine session du Paris Scala User Group aura lieu jeudi 26 Janvier Ă  19h30 dans les locaux de Xebia.

Ă€ cette occasion, StĂ©phane Landelle nous Lire la suite de cet article …

Catégories: Blog Société

Revue de Presse Xebia

mar, 01/24/2012 - 09:30

Revue de Presse Xebia
La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.

Actualité éditeurs / SSII

EvĂ©nements de notre communautĂ© en France et Ă  l’Ă©tranger

Lire la suite de cet article …

Catégories: Blog Société

Questions-Réponses sur le Cloud avec Sacha Labourey et Cyrille Le Clerc – Épisode 4

lun, 01/23/2012 - 08:20

Voici le quatrième et dernier épisode de la série de questions/réponses échangées lors de la soirée Cloud organisée par Cyrille Le Clerc avec Sacha Labourey.

Lire la suite de cet article …

Catégories: Blog Société

Xebia vous présente ses meilleurs vœux pour l’année 2012 …

mer, 01/18/2012 - 17:20

… et se propose de vous aider Ă  rĂ©aliser vos bonnes rĂ©solutions 2012 2011 ;-)

Envoyer nous votre CV Ă  recrutement@xebia.fr ou via le formulaire de Lire la suite de cet article …

Catégories: Blog Société

Soirée – Concevez une application DataGrid-NoSQL hautement scalable avec Nati Shalom, fondateur et CTO Gigaspaces

jeu, 01/12/2012 - 13:20


Vous aimez regarder les présentations NoSQL et Data Grid sur Internet ?

Nous aussi ! C’est pourquoi nous avons demandĂ© Ă  Lire la suite de cet article …

Catégories: Blog Société

Interview de Kirk Pepperdine sur les performances en Java par Cyrille Le Clerc

jeu, 01/12/2012 - 08:49


Cyrille Le Clerc a profitĂ© du passage de Kirk Pepperdine Ă  Paris pour l’interviewer sur les performances en Java ; au programme de ces discussions :

Catégories: Blog Société

Scala – jouer avec le pattern matching

mer, 01/11/2012 - 06:47

Combien de fois vous êtes vous senti engoncé dans votre frustration parce que vous étiez incapable d’utiliser des chaînes de caractères dans vos switch-case ? À défaut de pouvoir utiliser Java 7, une telle possibilité serait très utile pour par exemple traiter les arguments de votre application, pour analyser un fichier ou le contenu d’une chaîne. En fait, pour y arriver, vous devez écrire une série de if-else-if. Mais vous pourriez aussi utiliser une table de hachage, où les clés sont les chaînes de caractères et les valeurs sont les traitements réifiés par des Runnable, des Callable ou des Function de Guava.

Si le switch-case acceptant des chaĂ®nes de caractères est pour vous une chouette invention, le pattern matching de Scala nous indique que ce n’est pas suffisant ! En effet, il y a d’autres cas oĂą une sĂ©rie de if-else_if-else_if… serait sympathiquement transformĂ©e en une sorte de structure plus ou moins Ă©quivalente au switch-case. Par exemple, ce serait bien de pouvoir simplifier une sĂ©rie de compositions entre des instanceof et des class cast enfermĂ©s dans cette sĂ©rie de if-else_if-… en vue de rĂ©aliser des traitements spĂ©cifiques selon le type d’un paramètre (en attendant le multi-mĂ©thode).

Dans cet article, nous allons voir ce que peut apporter le pattern matching de Scala dans différents cas.

Lire la suite de cet article …

Catégories: Blog Société

Mise en place d’une organisation DevOps

lun, 01/09/2012 - 08:38

Comme le mouvement Agile a rapprochĂ© donneurs d’ordre et Ă©quipes de rĂ©alisation autour d’une vision commune orientĂ©e « produit », le mouvement DevOps rapproche aujourd’hui les Ă©quipes de dĂ©veloppement (DEV) et d’exploitation (OPS) autour d’une vision commune orientĂ©e « service », afin de mieux concilier rĂ©activitĂ© et qualitĂ© de service.

DevOps aborde le paradoxe entre des Ă©quipes projets qui cherchent Ă  livrer toujours plus frĂ©quemment des nouvelles fonctionnalitĂ©s d’une part et d’autre part des Ă©quipes d’exploitation qui cherchent Ă  stabiliser et fiabiliser les systèmes tout en maitrisant leur coĂ»t.

On peut décrire DevOps selon trois axes :

  • Aligner l’exploitation sur les enjeux mĂ©tiers comme l’agilitĂ© a dĂ©jĂ  alignĂ© le dĂ©veloppement sur le mĂ©tier.
  • Aligner le dĂ©veloppement sur les rĂ©alitĂ©s de l’exploitation pour rendre possible la mise en production, la disponibilitĂ© et la fiabilitĂ© des fonctionnalitĂ©s mĂ©tier.
  • La transformation du mĂ©tier d’OPS pour gĂ©rer des topologies chaque jour plus grosses et plus complexes avec l’adoption d’infrastructure as code et d’outils comme Chef ou Puppet. Les nouveaux OPS sont des programmeurs ! Ils dĂ©battent Ă  la machine Ă  cafĂ© de TDD, de Ruby vs. DSL, de choix d’IDE, de Git vs. SVN, …

DevOps est souvent associĂ© Ă  la mise en place d’un processus de Continuous Delivery qui, dans la mouvance Lean, vise Ă  dĂ©ployer les fonctionnalitĂ©s en production au plus vite et de maximiser les feedbacks. Nous reviendrons dans un autre billet sur les processus de Continuous Delivery.

La mise en place d’une culture DevOps touche les humains, les processus et les outils. Nous proposons une dĂ©marche englobant ces trois aspects en prenant comme point d’entrĂ©e les processus et, de proche en proche, faire Ă©voluer les humains et les outils.

Lire la suite de cet article …

Catégories: Blog Société

Questions-Réponses sur le Cloud avec Sacha Labourey et Cyrille Le Clerc – Épisode 3

jeu, 01/05/2012 - 08:40

Voici le troisième épisode de la série de questions/réponses échangées lors de la soirée Cloud organisée par Cyrille Leclerc avec Sacha Labourey.

Lire la suite de cet article …

Catégories: Blog Société

2 Février : Xebia accueille le CEO de 10Gen pour un Mongo Day

mer, 01/04/2012 - 09:17

Xebia a le plaisir d’organiser un Paris Mongo Day avec Dwight Merriman et 10gen le 2 FĂ©vrier !

Lire la suite de cet article …

Catégories: Blog Société

Revue de Presse Xebia

mar, 01/03/2012 - 23:06

Revue de Presse Xebia
La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.

Actualité éditeurs / SSII

Lire la suite de cet article …

Catégories: Blog Société

Java Puzzler

mer, 12/28/2011 - 08:42

Avant de commencer l’annĂ©e 2012, je vous propose un petit quiz adaptĂ© d’un cas rĂ©el.

Un programme standalone parse un fichier et insère les donnĂ©es parsĂ©es dans une base de donnĂ©es. Le mĂŞme programme est exĂ©cutĂ© dans trois rĂ©gions diffĂ©rentes Ă  savoir l’Europe, l’AmĂ©rique et l’Asie. Les entitĂ©s persistĂ©es ont toutes un champ uid unique. La valeur de ce champ doit ĂŞtre sous la forme ‘E-1234′ ce qui est interprĂ©tĂ© comme l’enregistrement n° 1234 d’Europe. La base de donnĂ©es est la mĂŞme pour les trois rĂ©gions.

Lorsqu’on lance le programme dans les trois rĂ©gions en parallèle, une exception est levĂ©e, laquelle et pourquoi est-elle levĂ©e ?

Lire la suite de cet article …

Catégories: Blog Société