org.jbehave.core.configuration.groovy
Class BytecodeGroovyClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by java.security.SecureClassLoader
          extended by java.net.URLClassLoader
              extended by groovy.lang.GroovyClassLoader
                  extended by org.jbehave.core.configuration.groovy.BytecodeGroovyClassLoader

public class BytecodeGroovyClassLoader
extends groovy.lang.GroovyClassLoader

Groovy does not cache the bytecode sequences for generated classes. BytecodeReadingParanamer needs these to get paramater names from classes The Groovy compiler does create the debug tables, and they are the same as the ones made for a native Java class, so this derived GroovyClassLoader fills in for the missing functionality from the base GroovyClassLoader. Groovy allows a mechanism via a system property to force the dump of bytecode to a (temp) directory, but caching the bytecode avoids having to clean up temp directories after the run.


Nested Class Summary
static class BytecodeGroovyClassLoader.BytecodeClassCollector
           
 
Nested classes/interfaces inherited from class groovy.lang.GroovyClassLoader
groovy.lang.GroovyClassLoader.ClassCollector, groovy.lang.GroovyClassLoader.InnerLoader
 
Field Summary
 
Fields inherited from class groovy.lang.GroovyClassLoader
classCache, sourceCache
 
Constructor Summary
BytecodeGroovyClassLoader()
           
 
Method Summary
protected  groovy.lang.GroovyClassLoader.ClassCollector createCollector(org.codehaus.groovy.control.CompilationUnit unit, org.codehaus.groovy.control.SourceUnit su)
           
 InputStream getResourceAsStream(String name)
           
 
Methods inherited from class groovy.lang.GroovyClassLoader
addClasspath, addURL, clearCache, createCompilationUnit, defineClass, defineClass, defineClass, defineClass, expandClassPath, generateScriptName, getClassCacheEntry, getClassPath, getLoadedClasses, getPermissions, getResourceLoader, getTimeStamp, isRecompilable, isShouldRecompile, isSourceNewer, loadClass, loadClass, loadClass, parseClass, parseClass, parseClass, parseClass, parseClass, parseClass, parseClass, recompile, removeClassCacheEntry, setClassCacheEntry, setResourceLoader, setShouldRecompile
 
Methods inherited from class java.net.URLClassLoader
definePackage, findClass, findResource, findResources, getURLs, newInstance, newInstance
 
Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BytecodeGroovyClassLoader

public BytecodeGroovyClassLoader()
Method Detail

getResourceAsStream

public InputStream getResourceAsStream(String name)
Overrides:
getResourceAsStream in class ClassLoader

createCollector

protected groovy.lang.GroovyClassLoader.ClassCollector createCollector(org.codehaus.groovy.control.CompilationUnit unit,
                                                                       org.codehaus.groovy.control.SourceUnit su)
Overrides:
createCollector in class groovy.lang.GroovyClassLoader


Copyright © 2003-2011. All Rights Reserved.