1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.jameleon.util;
20
21 import java.io.InputStream;
22
23 import org.apache.commons.collections.ExtendedProperties;
24 import org.apache.velocity.exception.ResourceNotFoundException;
25 import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
26
27 public class VelocityClasspathResourceLoader extends ClasspathResourceLoader
28 {
29
30 public void init( ExtendedProperties configuration)
31 {
32 rsvc.info("VelocityClasspathResourceLoader : initialization starting.");
33 rsvc.info("VelocityClasspathResourceLoader : initialization complete.");
34 }
35
36 /***
37 * Get an InputStream so that the Runtime can build a
38 * template with it.
39 *
40 * @param name name of template to get
41 * @return InputStream containing the template
42 * @throws ResourceNotFoundException if template not found
43 * in classpath.
44 */
45 public synchronized InputStream getResourceStream( String name )
46 throws ResourceNotFoundException {
47
48
49 InputStream input = null;
50 ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
51 if (classLoader == null) {
52 classLoader = this.getClass().getClassLoader();
53 input= classLoader.getResourceAsStream( name );
54 } else {
55 input= classLoader.getResourceAsStream( name );
56 if (input == null) {
57 classLoader = this.getClass().getClassLoader();
58 input= classLoader.getResourceAsStream( name );
59 }
60 }
61 if (input == null) {
62 throw new ResourceNotFoundException("Could not find "+name+" in the classpath.");
63 }
64 return input;
65
66 }
67
68 }
69