Commons VFS

Encore du Java ?
Ben oui, encore du Java, parce que "le Java, c'est ce que je fais le mieux", comme dirait Tigrou.
En Java, comme partout, il y a des librairies connues, et d'autres qui le sont moins. Dans les connues, on a … Struts (enfin, pour les anciens :-)), Hibernate, Spring (quoique Spring soit quand même bien plus qu'une simple librairie), et toutes celles qu'on peut trouver dans les CVs des gens bien comme il faut.
Et puis à coté, il y a toutes ces librairies bien pratiques, mais dont on ne parle jamais assez. Moi, par exemple, dans mon sac à malices, j'en ai quand même un paquet … dont je ne parlerai pas ici, en fait. Mais regardez par exemple The Best Java Tools You Never Knew Existed et dites moi combien de ces librairies vous connaissez ? C'est simple, c'est là que j'ai entendu parler pour la première fois de Joda Time (qui est une librairie formidable, mais qui n'est pas le sujet). Et si vous faites l'erreur de demander à des développeurs quelle est leur librairie préférée, vous obtiendrez autant de réponses que de développeurs (étant entendu de plus que Apache Commons n'est pas une librairie, mais un regroupement de tout un tas de "composants" qui sont en fait chacun des projets quasiment indépendants).
Il y a cependant dans Apache Commons quelques bons projets :
  • CLI (qui est utilisé par Groovy),
  • Configuration (que j'ai utilisé dans je ne sais plus quel projet pour lire des options, les réécrire, et tutti quanti),
  • JXPath (que je n'ai jamais utilisé, mais dont le principe même me semble marrant, quoiqu'en fait, de nos jours, on ferait plutôt appel à LambdaJ pour ce genre de choses),
  • Sanselan (que je voulais utiliser à un moment quand je pensais que refaire iPhoto en java, c'était envisageable)
Et, last but not least, VFS.
VFS, c'est un peu le FUSE du monde Java. Bon, dit comme ça, ça n'éclaircit pas les idées à grand monde, hein. En fait, avec VFS, vous pouvez vous connecter à un paquet de systèmes différents, pour les voir comme des objets Java classiques, et travailler dessus à distance. A l'usage, c'est assez pratique. Mis à part bien sûr un léger souci, qui fait que les liens symboliques accédés en SFTP ne sont pas lus comme des liens symboliques, mais comme de simples fichiers. Cela dit, c'est quand même bien pratique pour se connecter à un serveur SFTP et en manipuler les fichiers s'en trop s'embêter avec les histoires de protocole SSH (qui sont toujours trop compliquées).
En fait, à bien y réfléchir, le principal problème avec VFS, c'est que les objets fichier ne sont pas ceux de Java, mais d'autres. C'est un peu embêtant, puisqu'on ne peut pas utiliser les librairies qui prennent des File en paramètre, mais ça n'est pas trop grave, puisque de toute façon, je trouve cette partie de l'API pas forcément bien pensée.
Donc, la prochaine fois que vous voulez accéder à un système de fichier exotique, n'hésitez pas, pensez à commons VFS. Surtout, par exemple, si vous devez écrire le code d'interconnexion. Plutôt que de vous embêter avec les File, venez directement écrire un FileSystem pour VFS, et le reste du boulot sera fait !
Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s