I. Introduction

Cet article est le premier d'une série consacrée à la bibliothèque Guava :

I-A. Versions des logiciels et bibliothèques utilisés

Pour écrire ce document, j'ai utilisé les versions suivantes :

  • Java JDK 1.6.0_24-b07 ;
  • Eclipse Indigo 3.7 JEE 64b ;
  • Maven 3.0.3 ;
  • JUnit 4.10 ;
  • Guava 14.0.

J'utilise Java 6, car Java 7 n'est pas encore très répandu en entreprise. C'est ce que je vérifie durant mes conférences lorsque je demande qui utilise Java 7 sur ses serveurs de production, mais que très peu de mains se lèvent…

I-B. Mises à jour

15 juillet : création du document.

II. Guava en quelques mots

La bibliothèque Guava a été créée chez Google pour répondre aux besoins fréquemment rencontrés par les équipes Java du géant, et ainsi avoir des réponses standardisées et performantes sur l'ensemble des projets.

Guava est issue d'un autre projet de Google, à savoir « Google-Collection », pour lequel j'avais déjà écrit un article nommé « Àla découverte du framework Google Collections » il y a quelque temps. Quand je remonte l'historique des versions, je retrouve des traces de la bibliothèque jusqu'à l'été 2007. Quant à Guava, qui en est à la version « 14.0 » au moment où j'écris ces lignes, sa version « 1.0 Final » date de la fin 2009, soit un an et demi plus tard.

Pour faire simple, le projet « Google-Collection » a été abandonné au profit de Guava et ses fonctionnalités ont été intégrées dans Guava.

III. Milou le chien

Pour que l'ensemble de cet article soit cohérent et pour ne pas avoir à décrire des cas d'usage complexes à chaque exemple, j'ai utilisé des objets simples pour illustrer les fonctionnalités.

Milou
Milou

C'est là qu'intervient Milou le chien, un bean très simple qui ressemble au code Java suivant :

Chien.java
Sélectionnez

public class Chien {

    private Integer id;

    private String name;
    private String fullName;

    private SexeEnum sex;
    private Date birthday;

    private String race;
    private Boolean lof;

    private Double weight;
    private Double size;
    private List<String> colors;

    ...

IV. Installation

Il y a plusieurs manières d'ajouter Guava à un projet, la plus simple étant de prendre directement le fichier JAR sur le site de la bibliothèque chez Google. Pour ma part, je préfère utiliser un outil comme Maven ou Gradle. Voici comment cela doit être fait.

Dans tous les cas, je vous invite à lire la documentation spécifique avec les conseils destinés à chaque solution sur le Wiki de Guava.

IV-A. Maven

pom.xml
Sélectionnez

...

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>14.0</version>
</dependency>

...

IV-B. Gradle

Gradle
Sélectionnez

...

repositories {
  mavenCentral()
}

dependencies {
  compile group: 'com.google.guava', name: 'guava', version: '14.0'
}

...

IV-C. Ivy

Ivy
Sélectionnez

...

<dependency org="com.google.guava" name="guava" rev="14.0" />

...

IV-D. Buildr

Buildr
Sélectionnez

compile.with 'com.google.guava:guava:jar:14.0'

V. Conclusion

Pour le moment, nous n'avons vu que comment ajouter Guava à vos projets. N'hésitez pas à consulter les autres épisodes de cette série pour découvrir les fonctionnalités fantastiques de la bibliothèque.

Vos retours nous aident à améliorer nos publications. N'hésitez donc pas à commenter cet article sur le forum : Commentez Donner une note à l'article (0)

VI. Remerciements

D'abord j'adresse mes remerciements à l'équipe Guava, chez Google, pour avoir développé une bibliothèque aussi utile et pour la maintenir. Je n'oublie pas tous les contributeurs qui participent notamment sur le forum Guava.

Plus spécifiquement en ce qui concerne cet article, je tiens à remercier l'équipe de Developpez.com et plus particulièrement Bernard Le Roux, Ricky81, Mickael Baron, Yann Caron, Logan, et Claude Leloup.

VII. Annexes

VII-A. Liens

Guava : https://code.google.com/p/guava-libraries/

Article « Simplifier le code de vos beans Java à l'aide de Commons Lang, Guava et Lombok » :
http://thierry-leriche-dessirier.developpez.com/tutoriels/java/simplifier-code-guava-lombok/

Blog sur Guava : http://blog.developpez.com/guava/

VII-B. Liens personnels

Retrouvez ma page et mes autres articles sur Developpez.com à l'adresse
http://thierry-leriche-dessirier.developpez.com/#page_articlesTutoriels

Suivez-moi sur Twitter : @thierryleriche(https://twitter.com/thierryleriche)@thierryleriche

VII-C. À propos

Dans cet article, j'ai essayé d'illustrer les éléments abordés avec des tests unitaires et/ou des exemples concrets, souvent associés à des chiens. On pourrait en imaginer bien d'autres, qui seraient peut-être plus pertinents. Si vous souhaitez m'en proposer, je me ferai un plaisir de les intégrer. Mon objectif, dans le choix des exemples, est principalement d'avoir des cas faciles à expliquer et/ou à comprendre, en quelques secondes. Je ne souhaite pas m'embarquer dans une longue explication (physique quantique, comptabilité, etc.), quitte à ne pas avoir les meilleures illustrations.

Il y aurait mille et une façons de présenter la bibliothèque Guava. Les fonctionnalités auxquelles pensent en premier les développeurs sont généralement liées aux collections, aux immutables, à la programmation fonctionnelle et aux utilitaires simples. J'ai commencé par ces éléments. Pour le reste, je me suis inspiré du Wiki officiel.

J'ai déjà fait tourner des présentations de Guava dans différents JUG (Java User Group) français. Vous en retrouverez les enregistrements (audio et/ou vidéo) ainsi que les slides PowerPoint sur mon site ici. Cela ne se substitue pas à cet article, qui est bien plus complet.

Pour préparer cet article, j'ai d'abord écrit un blog disponible sur Developpez.com ici. Je vous invite à le consulter en complément de ce document, car il propose d'autres exemples.