[Lutingenerator-commits] r374 - in lutingenerator/trunk: . src/main/java/org/codelutin/generator
Author: chemit Date: 2008-11-17 11:20:09 +0000 (Mon, 17 Nov 2008) New Revision: 374 Modified: lutingenerator/trunk/changelog lutingenerator/trunk/src/main/java/org/codelutin/generator/GeneratorTask.java Log: GeneratorTask can have a dedicated classLoader to be used to instanciate generator implementations Modified: lutingenerator/trunk/changelog =================================================================== --- lutingenerator/trunk/changelog 2008-11-14 09:35:26 UTC (rev 373) +++ lutingenerator/trunk/changelog 2008-11-17 11:20:09 UTC (rev 374) @@ -1,4 +1,7 @@ -0.61 chemit 200811?? +0.62 chemit 200811?? + * 20081117 [chemit] : GeneratorTask can have a dedicated classLoader to be used to instanciate generator implementations + +0.61 chatellier 20081114 * 20081101 [chemit] - add a parent setter on ChildGenerator - add an excludeTemplates property on Generator and GeneratorTask to permit exclusion of generators for some composite generator Modified: lutingenerator/trunk/src/main/java/org/codelutin/generator/GeneratorTask.java =================================================================== --- lutingenerator/trunk/src/main/java/org/codelutin/generator/GeneratorTask.java 2008-11-14 09:35:26 UTC (rev 373) +++ lutingenerator/trunk/src/main/java/org/codelutin/generator/GeneratorTask.java 2008-11-17 11:20:09 UTC (rev 374) @@ -84,6 +84,9 @@ protected boolean overwrite = true; + // to enable a customized classloader + protected ClassLoader loader; + public void setOverwrite(boolean v) { overwrite = v; } @@ -122,7 +125,12 @@ this.srcFile = srcFile; } - public void execute() throws BuildException { + public void setLoader(ClassLoader loader) { + this.loader = loader; + } + + @Override + public void execute() throws BuildException { Generator[] generators; if (templates == null) { throw new BuildException("templates attribute must be set!", @@ -139,10 +147,11 @@ for (int i = 0; i < templateGenerators.size(); i++) { String templateName = templateGenerators.get(i); try { - generators[i] = (Generator) Class - .forName(templateName).newInstance(); + generators[i] = newGeneratorInstance(templateName); + + //generators[i] = (Generator) Class.forName(templateName).newInstance(); generators[i].setExcludeTemplates(excludeTemplates); - + } catch (ClassCastException eee) { System.out.println("Generator don't herite Generator Class : " + templateName); @@ -205,4 +214,12 @@ } } + protected Generator newGeneratorInstance(String fqn) throws ClassNotFoundException, IllegalAccessException, InstantiationException { + if (loader==null) { + return (Generator) Class.forName(fqn).newInstance(); + } else { + + return (Generator) Class.forName(fqn,true,loader).newInstance(); + } + } } // GeneratorTask
participants (1)
-
chemit@users.labs.libre-entreprise.org