Author: chatellier Date: 2009-04-06 17:02:39 +0000 (Mon, 06 Apr 2009) New Revision: 2076 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java Log: Fix classpath (search with manifest file from first jar) Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2009-04-06 15:19:21 UTC (rev 2075) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2009-04-06 17:02:39 UTC (rev 2076) @@ -41,6 +41,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.codelutin.util.FileUtil; +import org.codelutin.util.Resource; import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.datastore.JavaSourceStorage; @@ -165,7 +166,7 @@ result = compile(classpath, src, dest, out); } catch (Exception eee) { if (log.isWarnEnabled()) { - log.warn("Compilation faild", eee); + log.warn("Compilation failed", eee); } } return result; @@ -222,16 +223,32 @@ String result = StringUtils.join(classpath.iterator(), File.pathSeparator) + File.pathSeparator + System.getProperty("java.class.path"); - + if (log.isDebugEnabled()) { + log.debug("Result : " + result); + } + // Ajout des jars for (Enumeration<?> e = CompileHelper.class.getClassLoader() .getResources("META-INF/MANIFEST.MF"); e.hasMoreElements();) { URL url = (URL) e.nextElement(); + if (log.isDebugEnabled()) { + log.debug("Found manifest : " + url); + } if ((url != null) && url.getFile().startsWith("file:/")) { String jarName = url.getPath().substring(5, url.getPath().indexOf("!")); if (!result.contains(jarName)) { result += File.pathSeparator + jarName; + + // FIX to launch isis with java -jar + URL jarURL = new URL("jar",null,jarName); + URL[] urls = Resource.getClassPathURLsFromJarManifest(jarURL); + for (URL url2 : urls) { + String jarName2 = url2.getFile(); + if (!result.contains(jarName2)) { + result += File.pathSeparator + jarName2; + } + } } } }