Details
-
Type:
Improvement
-
Status:
Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: 1.1-beta-2
-
Fix Version/s: 1.1-rc-1
-
Component/s: Groovlet / GSP
-
Labels:None
-
Patch Submitted:Yes
-
Number of attachments :
Description
SimpleTemplateEngine doesn't allow the caller to specify a parent classloader. When it creates a GroovyShell, it just uses the loader for that class.
Index: src/main/groovy/text/SimpleTemplateEngine.java
===================================================================
--- src/main/groovy/text/SimpleTemplateEngine.java (revision 6601)
+++ src/main/groovy/text/SimpleTemplateEngine.java (working copy)
@@ -69,8 +69,14 @@
}
public Template createTemplate(Reader reader) throws CompilationFailedException, IOException {
+ return createTemplate(GroovyShell.class.getClassLoader(), reader);
+ }
+
+ public Template createTemplate(ClassLoader parentLoader, Reader reader)
+ throws CompilationFailedException, IOException
+ {
SimpleTemplate template = new SimpleTemplate();
- GroovyShell shell = new GroovyShell();
+ GroovyShell shell = new GroovyShell(parentLoader);
String script = template.parse(reader);
if (verbose) {
System.out.println("\n-- script source --");
Other template engines should have consistent features with this enhancement.
Activity
Paul King
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Fix Version/s | 1.1-rc-1 [ 13165 ] | |
| Fix Version/s | 2.0 [ 13489 ] | |
| Description |
SimpleTemplateEngine doesn't allow the caller to specify a parent classloader. When it creates a GroovyShell, it just uses the loader for that class. Index: src/main/groovy/text/SimpleTemplateEngine.java =================================================================== --- src/main/groovy/text/SimpleTemplateEngine.java (revision 6601) +++ src/main/groovy/text/SimpleTemplateEngine.java (working copy) @@ -69,8 +69,14 @@ } public Template createTemplate(Reader reader) throws CompilationFailedException, IOException { + return createTemplate(GroovyShell.class.getClassLoader(), reader); + } + + public Template createTemplate(ClassLoader parentLoader, Reader reader) + throws CompilationFailedException, IOException + { SimpleTemplate template = new SimpleTemplate(); - GroovyShell shell = new GroovyShell(); + GroovyShell shell = new GroovyShell(parentLoader); String script = template.parse(reader); if (verbose) { System.out.println("\n-- script source --"); |
SimpleTemplateEngine doesn't allow the caller to specify a parent classloader. When it creates a GroovyShell, it just uses the loader for that class. {code} Index: src/main/groovy/text/SimpleTemplateEngine.java =================================================================== --- src/main/groovy/text/SimpleTemplateEngine.java (revision 6601) +++ src/main/groovy/text/SimpleTemplateEngine.java (working copy) @@ -69,8 +69,14 @@ } public Template createTemplate(Reader reader) throws CompilationFailedException, IOException { + return createTemplate(GroovyShell.class.getClassLoader(), reader); + } + + public Template createTemplate(ClassLoader parentLoader, Reader reader) + throws CompilationFailedException, IOException + { SimpleTemplate template = new SimpleTemplate(); - GroovyShell shell = new GroovyShell(); + GroovyShell shell = new GroovyShell(parentLoader); String script = template.parse(reader); if (verbose) { System.out.println("\n-- script source --"); {code} |
| Fix Version/s | 1.1 [ 13166 ] |
Paul King
made changes -
| Assignee | Paul King [ paulk ] |
Paul King
made changes -
| Resolution | Fixed [ 1 ] | |
| Status | Open [ 1 ] | Resolved [ 5 ] |
Paul King
made changes -
| Summary | SimpleTemplateEngine should allow caller to specify classloader | SimpleTemplateEngine (and poentially other TemplateEngines) should allow caller to specify classloader |
| Description |
SimpleTemplateEngine doesn't allow the caller to specify a parent classloader. When it creates a GroovyShell, it just uses the loader for that class. {code} Index: src/main/groovy/text/SimpleTemplateEngine.java =================================================================== --- src/main/groovy/text/SimpleTemplateEngine.java (revision 6601) +++ src/main/groovy/text/SimpleTemplateEngine.java (working copy) @@ -69,8 +69,14 @@ } public Template createTemplate(Reader reader) throws CompilationFailedException, IOException { + return createTemplate(GroovyShell.class.getClassLoader(), reader); + } + + public Template createTemplate(ClassLoader parentLoader, Reader reader) + throws CompilationFailedException, IOException + { SimpleTemplate template = new SimpleTemplate(); - GroovyShell shell = new GroovyShell(); + GroovyShell shell = new GroovyShell(parentLoader); String script = template.parse(reader); if (verbose) { System.out.println("\n-- script source --"); {code} |
SimpleTemplateEngine doesn't allow the caller to specify a parent classloader. When it creates a GroovyShell, it just uses the loader for that class. {code} Index: src/main/groovy/text/SimpleTemplateEngine.java =================================================================== --- src/main/groovy/text/SimpleTemplateEngine.java (revision 6601) +++ src/main/groovy/text/SimpleTemplateEngine.java (working copy) @@ -69,8 +69,14 @@ } public Template createTemplate(Reader reader) throws CompilationFailedException, IOException { + return createTemplate(GroovyShell.class.getClassLoader(), reader); + } + + public Template createTemplate(ClassLoader parentLoader, Reader reader) + throws CompilationFailedException, IOException + { SimpleTemplate template = new SimpleTemplate(); - GroovyShell shell = new GroovyShell(); + GroovyShell shell = new GroovyShell(parentLoader); String script = template.parse(reader); if (verbose) { System.out.println("\n-- script source --"); {code} Other template engines should have consistent features with this enhancement. |
Paul King
made changes -
| Resolution | Fixed [ 1 ] | |
| Status | Resolved [ 5 ] | Reopened [ 4 ] |
Guillaume Laforge
made changes -
| Fix Version/s | 1.1-rc-1 [ 13165 ] | |
| Fix Version/s | 1.1-beta-3 [ 13590 ] |
Paul King
made changes -
| Resolution | Fixed [ 1 ] | |
| Status | Reopened [ 4 ] | Resolved [ 5 ] |
Paul King
made changes -
| Status | Resolved [ 5 ] | Closed [ 6 ] |