Added ability to give GroovyClassLoader to SimpleComponentTemplateClassFactory.
This commit is contained in:
parent
d704ca545d
commit
6336dfc104
@ -1,5 +1,6 @@
|
|||||||
package groowt.view.component.compiler;
|
package groowt.view.component.compiler;
|
||||||
|
|
||||||
|
import groovy.lang.GroovyClassLoader;
|
||||||
import groowt.view.component.ComponentTemplate;
|
import groowt.view.component.ComponentTemplate;
|
||||||
import groowt.view.component.compiler.util.GroovyClassWriter;
|
import groowt.view.component.compiler.util.GroovyClassWriter;
|
||||||
import groowt.view.component.compiler.util.SimpleGroovyClassWriter;
|
import groowt.view.component.compiler.util.SimpleGroovyClassWriter;
|
||||||
@ -7,8 +8,6 @@ import groowt.view.component.compiler.util.SimpleGroovyClassWriter;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
|
||||||
import java.net.URLClassLoader;
|
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -21,6 +20,10 @@ public final class SimpleComponentTemplateClassFactory implements ComponentTempl
|
|||||||
private final GroovyClassWriter groovyClassWriter;
|
private final GroovyClassWriter groovyClassWriter;
|
||||||
|
|
||||||
public SimpleComponentTemplateClassFactory() {
|
public SimpleComponentTemplateClassFactory() {
|
||||||
|
this(new GroovyClassLoader());
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleComponentTemplateClassFactory(GroovyClassLoader groovyClassLoader) {
|
||||||
this.groovyClassWriter = new SimpleGroovyClassWriter();
|
this.groovyClassWriter = new SimpleGroovyClassWriter();
|
||||||
try {
|
try {
|
||||||
this.tempClassesDir = Files.createTempDirectory("view-component-classes-").toFile();
|
this.tempClassesDir = Files.createTempDirectory("view-component-classes-").toFile();
|
||||||
@ -28,11 +31,8 @@ public final class SimpleComponentTemplateClassFactory implements ComponentTempl
|
|||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
this.classLoader = new URLClassLoader(
|
groovyClassLoader.addURL(this.tempClassesDir.toURI().toURL());
|
||||||
"SimpleComponentTemplateClassFactoryClassLoader",
|
this.classLoader = groovyClassLoader;
|
||||||
new URL[] { this.tempClassesDir.toURI().toURL() },
|
|
||||||
this.getClass().getClassLoader()
|
|
||||||
);
|
|
||||||
} catch (MalformedURLException e) {
|
} catch (MalformedURLException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user