object ExtensionManager

Some simple notes on loading and unloading extensions: - The load method is called when an extension appears in the extensions block when it wasn't there in the last compilation - The unload method is called when an extension is removed from the extensions block

ExtensionManager lifecycle call chart. In [square brackets] are methods called on the extension manager. In {curly braces} are the methods called on the class manager of the extension. Conditions are specified in (parens)

[startFullCompilation] // called by compiler | | (no exts) (ext foo) | | | v | [importExtension(foo)] // called by compiler | | | | (foo loaded) (foo not loaded) | | | | v v | {unload} {runOnce} | | | | v v | +-----{load} | | | // return control to compiler |(foo:bar not used) (foo:bar used) | | | | | v | | [replaceIdentifer(foo:bar)] // foo added to live set | | | | | | v v v [finishFullCompilation] | | | (no ext) (foo live) (foo not live) | | | --- --- v {unload} | ---

Source
ExtensionManager.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ExtensionManager
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class ExtensionData(extensionName: String, fileURL: URL, prefix: String, classManagerName: String, version: Option[String], modified: Long) extends Product with Serializable
  2. trait ExtensionLoader extends AnyRef
  3. class JarContainer extends AnyRef

Value Members

  1. val EXTENSION_NOT_FOUND: String
  2. def extensionPath: String