Index: lutinutil/src/java/org/codelutin/util/Resource.java diff -u lutinutil/src/java/org/codelutin/util/Resource.java:1.32 lutinutil/src/java/org/codelutin/util/Resource.java:1.33 --- lutinutil/src/java/org/codelutin/util/Resource.java:1.32 Mon Mar 3 13:19:55 2008 +++ lutinutil/src/java/org/codelutin/util/Resource.java Wed Mar 5 11:41:22 2008 @@ -23,37 +23,37 @@ * * @author POUSSIN Benjamin * Copyright Code Lutin -* @version $Revision: 1.32 $ +* @version $Revision: 1.33 $ * -* Mise a jour: $Date: 2008-03-03 13:19:55 $ -* par : $Author: tchemit $ +* Mise a jour: $Date: 2008-03-05 11:41:22 $ +* par : $Author: glandais $ */ package org.codelutin.util; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Method; import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; import java.net.URLClassLoader; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; import java.util.Properties; +import java.util.jar.Attributes; import java.util.jar.JarFile; import java.util.jar.Manifest; -import java.util.jar.Attributes; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import javax.swing.ImageIcon; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * Cette class permet de recherche un fichier en indiquant son nom @@ -214,6 +214,27 @@ return getURLs(pattern, null); } + static private URL[] getURLs(URLClassLoader classLoader) { + Method m; + try { + // Essai de récupération de la méthode getAllURLs() de RepositoryClassLoader (JBoss) + m = classLoader.getClass().getMethod("getAllURLs"); + } catch (Exception e) { + throw new IllegalStateException(e); + } + URL[] result; + if (m == null) { + result = classLoader.getURLs(); + } else { + try { + result = (URL[]) m.invoke(classLoader); + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + return result; + } + /** * Retourner la liste des fichiers du classLoader. Ces fichiers doivent * correspondent au pattern donne @@ -231,7 +252,7 @@ } HashList urlList = new HashList(); - URL[] arrayURL = classLoader.getURLs(); + URL[] arrayURL = getURLs(classLoader); if (arrayURL.length == 1) { URL jarURL = arrayURL[0]; if (isJar(jarURL.toString())) {