View Javadoc

1   /*
2       Jameleon - An automation testing tool..
3       Copyright (C) 2003-2005 Christian W. Hargraves (engrean@hotmail.com)
4       
5       This library is free software; you can redistribute it and/or
6       modify it under the terms of the GNU Lesser General Public
7       License as published by the Free Software Foundation; either
8       version 2.1 of the License, or (at your option) any later version.
9   
10      This library is distributed in the hope that it will be useful,
11      but WITHOUT ANY WARRANTY; without even the implied warranty of
12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13      Lesser General Public License for more details.
14  
15      You should have received a copy of the GNU Lesser General Public
16      License along with this library; if not, write to the Free Software
17      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111AssertLevel.NO_FUNCTION07 USA
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