I. Introduction▲
Cet article est le premier d'une série consacrée à la bibliothèque Guava :
- introduction et installation ;
- collections ;
- programmation fonctionnelle ;
- utilitaires ;
- cache et concurrence ;
- tout pour vos Strings et primitifs ;
- un peu de math ;
- hash et I/O.
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.
C'est là qu'intervient Milou le chien, un bean très simple qui ressemble au code Java suivant :
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▲
...
<dependency>
<groupId>
com.google.guava</groupId>
<artifactId>
guava</artifactId>
<version>
14.0</version>
</dependency>
...
IV-B. Gradle▲
...
repositories {
mavenCentral
(
)
}
dependencies {
compile group: 'com.google.guava'
, name: 'guava'
, version: '14.0'
}
...
IV-C. Ivy▲
...
<dependency
org
=
"com.google.guava"
name
=
"guava"
rev
=
"14.0"
/>
...
IV-D. Buildr▲
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
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 » :
https://thierry-leriche-dessirier.developpez.com/tutoriels/java/simplifier-code-guava-lombok/
Blog sur Guava : https://blog.developpez.com/guava/
VII-B. Liens personnels▲
Retrouvez ma page et mes autres articles sur Developpez.com à l'adresse
https://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.