Author: mfortun Date: 2011-08-01 11:17:38 +0200 (Mon, 01 Aug 2011) New Revision: 1101 Url: http://nuiton.org/repositories/revision/wikitty/1101 Log: * change com.sun import to javax.tools to obtain java compiler Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/CompileHelper.java Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/CompileHelper.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/CompileHelper.java 2011-07-28 16:08:38 UTC (rev 1100) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/externalize/CompileHelper.java 2011-08-01 09:17:38 UTC (rev 1101) @@ -1,10 +1,7 @@ package org.nuiton.wikitty.publication.externalize; - - import static org.nuiton.i18n.I18n._; - import java.io.File; import java.io.PrintWriter; @@ -25,34 +22,30 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.util.FileUtil; -import com.sun.tools.javac.api.JavacTool; - - /** * Class reuse from the isis fish project. * * * Compile helper used to compile Java code. * - * JDK must be installed to use compilation. - * (JRE won't work). + * JDK must be installed to use compilation. (JRE won't work). * * Created: 12 janv. 2006 15:29:53 - * + * * @author poussin * @version $Revision: 3124 $ - * - * Last update: $Date: 2010-11-29 19:14:09 +0100 (lun. 29 nov. 2010) $ - * by : $Author: chatellier $ + * + * Last update: $Date: 2010-11-29 19:14:09 +0100 (lun. 29 nov. 2010) $ + * by : $Author: chatellier $ */ public class CompileHelper { /** Logger for this class. */ private static final Log log = LogFactory.getLog(CompileHelper.class); - /** - * Recherche tous les fichiers qui un source plus recent que la version compilé. + * Recherche tous les fichiers qui un source plus recent que la version + * compilé. * * @param srcDir * @param destDir @@ -69,25 +62,23 @@ return result; } - - - - - /** * Methode permettant de compiler un fichier Java. * - * @param rootSrc le répertoire ou se trouve les sources - * @param src Le fichier source a compiler, il doit etre dans un sous - * répertoire de rootSrc en fonction du package - * @param dest le repertoire destination de la compilation - * @param out l'objet sur lequel on ecrit la sortie (erreur) de la - * compilation - * @return un nombre different de 0 s'il y a une erreur - * <li> -1000 si l'exception vient de la recherche du compilateur par - * introspection - * <li> -10000 si une autre exception - * <li> sinon les valeurs retourné par le compilateur java + * @param rootSrc + * le répertoire ou se trouve les sources + * @param src + * Le fichier source a compiler, il doit etre dans un sous + * répertoire de rootSrc en fonction du package + * @param dest + * le repertoire destination de la compilation + * @param out + * l'objet sur lequel on ecrit la sortie (erreur) de la + * compilation + * @return un nombre different de 0 s'il y a une erreur <li>-1000 si + * l'exception vient de la recherche du compilateur par + * introspection <li>-10000 si une autre exception <li>sinon les + * valeurs retourné par le compilateur java */ public static int compile(File rootSrc, File src, File dest, PrintWriter out) { int result = compile(rootSrc, Collections.singletonList(src), dest, out); @@ -97,17 +88,20 @@ /** * Methode permettant de compiler un ensemble de fichiers Java. * - * @param rootSrc le répertoire ou se trouve les sources - * @param src Le fichier source a compiler, il doit etre dans un sous - * répertoire de rootSrc en fonction du package - * @param dest le repertoire destination de la compilation - * @param out l'objet sur lequel on ecrit la sortie (erreur) de la - * compilation - * @return un nombre different de 0 s'il y a une erreur - * <li> -1000 si l'exception vient de la recherche du compilateur par - * introspection - * <li> -10000 si une autre exception - * <li> sinon les valeurs retourné par le compilateur java + * @param rootSrc + * le répertoire ou se trouve les sources + * @param src + * Le fichier source a compiler, il doit etre dans un sous + * répertoire de rootSrc en fonction du package + * @param dest + * le repertoire destination de la compilation + * @param out + * l'objet sur lequel on ecrit la sortie (erreur) de la + * compilation + * @return un nombre different de 0 s'il y a une erreur <li>-1000 si + * l'exception vient de la recherche du compilateur par + * introspection <li>-10000 si une autre exception <li>sinon les + * valeurs retourné par le compilateur java */ public static int compile(File rootSrc, Collection<File> src, File dest, PrintWriter out) { @@ -128,16 +122,19 @@ /** * Compile un fichier java. * - * @param src les fichiers java source - * @param dest le repertoire destination + * @param src + * les fichiers java source + * @param dest + * le repertoire destination */ protected static int compile(List<File> classpath, Collection<File> src, File dest, PrintWriter out) { dest.mkdirs(); - + int result = -1000; try { - JavaCompiler compiler = JavacTool.create(); + JavaCompiler compiler = javax.tools.ToolProvider + .getSystemJavaCompiler(); // Use system compiler // JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); StandardJavaFileManager fileManager = compiler @@ -149,7 +146,8 @@ String classpathAsString = getClassPathAsString(classpath); List<String> args = new ArrayList<String>(); args.add("-g"); - // Show a description of each use or override of a deprecated member or class. + // Show a description of each use or override of a deprecated member + // or class. args.add("-deprecation"); args.add("-classpath"); args.add(classpathAsString); @@ -172,15 +170,17 @@ } /** - * Return full classpath (for compilation or javadoc) as string. - * Separated by {@link File#pathSeparator}. + * Return full classpath (for compilation or javadoc) as string. Separated + * by {@link File#pathSeparator}. * * Add : * <ul> - * <li>System.getProperty("java.class.path") - * <li>All first jar dependency (META-INF/MANIFEST.MF) + * <li>System.getProperty("java.class.path") + * <li>All first jar dependency (META-INF/MANIFEST.MF) * </ul> - * @param classpath initial classpath + * + * @param classpath + * initial classpath * @return classpath as string * @throws Exception */ @@ -193,8 +193,8 @@ // classpath. // result in duplicated entry or non normalised entry // en compilation fail some times - //+ File.pathSeparator + System.getProperty("java.class.path"); - + // + File.pathSeparator + System.getProperty("java.class.path"); + // Ajout des jars for (Enumeration<?> e = CompileHelper.class.getClassLoader() .getResources("META-INF/MANIFEST.MF"); e.hasMoreElements();) { @@ -230,12 +230,4 @@ return result; } - - - - - - - - }