On Thu, 10 Feb 2011 11:09:56 +0100 Eric Chatellier <chatellier@codelutin.com> wrote:
Bonjour,
Dans une application, j'ai besoin de rechercher des resources en fonction d'un pattern, pour cela j'ai utilisé la fonction Resource.getURLs(String pattern) mais qui par défaut recherche dans le system classloader.
De plus, ayant un class loader personnalisé, je ne peux pas utiliser la fonction Resource.getURLs(String pattern, URLClassLoader classLoader) car je ne suis pas sur que mon classloader: Thread.currentThread().getContextClassLoader() etend URLClassLoader.
J'ai trouvé un autre code qui permet de recherche des patterns dans un simple ClassLoader dans... Spring. http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/cor...
Voici un exemple d'utilisation :
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(Thread.currentThread().getContextClassLoader()); Resource[] resources = resolver.getResources("classpath:/validators/fr/ifremer/coser/data/*.xml"); for (Resource resource : resources) { URL url = resource.getURL(); ... }
Je n'ai pas trop regardé comment ils faisaient, mais ca a résolu le fonctionnement en local et en java web start sans trop de developpement.
Mais j'ai une dépendance sur Spring :(
-100 : perso je veux vraiment pas aucune deps autre que du commons dans nuiton-utils (et ben aussi si je me souviens bien). Y'a d'autres libs qui font ça dans commons je crois. La question que je me poserais plutôt à ta place c'est suis-je vraiment obligé de faire ça ? car l'expérience me fait dire que c'est très souvent pas nécessaire et que c'est un truc vraiment bourrin avec des performances pas très bonnes (voire catastrophique si tu as un class-path énorme). De plus dans ton cas présent je vois bien que tu cherches les fichiers de validations et si tu utilises nuiton-validator ton problème va disparaître car tu n'as pas à gérer ça... au fait t'en es où du passage de coser sur nuiton-validator ? -- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com