finds all class names for a list of directories
the script engine works by keeping 1 version of the compiled source directories.
this holds the configuration for the script engine.
provides easy access to instance construction
this is useful during development.
a scala-code evaluator
if no code version is ready, tries to find the classes from the classpath initially.
logging is done via slf4j
checks scala files for modification and if yes it recompiles the changed sources.
makes sure the refresh is run only once at a time.
refresh as soon as a modification is detected.
The implementation of the script engine.
scala source folder along with the destination class folder
periodically scans the source directories and if a file changed, it recompiles and creates a new CodeVersion (changes will be visible as soon as compilation completes)
the companion object provides a lot of useful factory methods to create a script engine with sensible defaults.