class ScalaScriptEngine extends Logging
The implementation of the script engine.
The engine works by refreshing the codeVersion. This means that, when the refresh() function is called and provided that the source files have changed, a compilation will be triggered. When the compilation is complete, a new codeVersion will be created and will be used till the next refresh.
This can be initialized standalone or by mixing in a refresh policy trait. If standalone, then refresh() should be manually invoked every time a change occurs in the source code.
If mixed in with a refresh policy, then the policy takes care of scanning the source code for changes and refreshing. Please check RefreshPolicies.scala
Typically this class will not be instantiated using 'new' but rather using one of the factory methods of the companion object. Instantiation offers the full amount of options that can be used by mixing in the various refresh policies and enhancers.
val sse = new ScalaScriptEngine(Config( Set(sourceDir), compilationClassPath, runtimeClasspath, outputDir)) with RefreshAsynchronously with FromClasspathFirst { val recheckEveryMillis: Long = 1000 // each file will only be checked maximum once per second }))
- Alphabetic
- By Inheritance
- ScalaScriptEngine
- Logging
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
cleanBuild: CodeVersion
forces a clean build of all source files
forces a clean build of all source files
- returns
the new CodeVersion
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
- def compilationStatus: CompilationStatus
- val config: Config
-
def
constructors[T](className: String): Constructors[T]
returns Constructors, this allows easy instantiation of the class using up to 4 constructor arguments.
returns Constructors, this allows easy instantiation of the class using up to 4 constructor arguments.
Constructors returned by this method are linked to the current codeversion. This means that, if codeversion is refreshed, a call to this will return an up to date Constructors instance. But also it means that the returned constructor will always create instances of that codeversion and will not reflect updates to the codeversion.
-
def
createClassLoader: ScalaClassLoader
- Attributes
- protected
- def currentVersion: CodeVersion
-
def
debug(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
deleteAllClassesInOutputDirectory(): Unit
please make sure outputDir is valid!!! If you used one of the factory methods to create an instance of the script engine, the output dir will be in the tmp directory.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
error(msg: String, e: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
error(msg: String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
get[T](className: String): Class[T]
returns the Class[T] for className
returns the Class[T] for className
Can throw ClassNotFoundException if the class is not present. Can throw ClassCastException if the class is not of T Can trigger a compilation in the background or foreground, depending on the refresh policy.
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
def
info(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isModified(sourcePath: SourcePath, clz: String): Boolean
- clz
the full class name
- returns
true if the scala file was modified since the last compilation
-
def
markAllAsModified(): Unit
marks all source files as modified, hence it will recompile all the source files on the next call to refresh()
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
newInstance[T](className: String): T
returns a new instance of className.
returns a new instance of className. The new instance is always of the latest codeversion.
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- def refresh: CodeVersion
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
- def versionNumber: Int
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
warn(msg: String): Unit
- Attributes
- protected
- Definition Classes
- Logging