fc.web.page
Class PageClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by fc.web.page.PageClassLoader

public class PageClassLoader
extends ClassLoader

A classloader that loads molly server pages. Each page is loaded by it's own separate ClassLoader.

If a page changes on disk (this is tracked by PageMgr), then the new page is loaded by a new instance of this class. Loaded pages are casted to the non-reloadable Page interface. This Page interface itself is loaded by a parent (typically JVM/system) classloader.


Constructor Summary
PageClassLoader()
          Calls PageClassLoader with the logger set to: fc.web.page.PageClassLoader
PageClassLoader(Log log)
           
 
Method Summary
 Class loadClass(String name, boolean resolve)
          Loads a class corresponding to a page (i.e., a name that starts with Page.PackageName from.
static void main(String[] args)
           
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PageClassLoader

public PageClassLoader(Log log)
Parameters:
scratch - absolute path to the scratch dir
log - logging destination.

PageClassLoader

public PageClassLoader()
Calls PageClassLoader with the logger set to: fc.web.page.PageClassLoader

Method Detail

loadClass

public Class loadClass(String name,
                       boolean resolve)
                throws ClassNotFoundException
Loads a class corresponding to a page (i.e., a name that starts with Page.PackageName from. Delegates the loading of all other classes to the parent classloader (typically the system classloader).

If the page suffix is .mp, then a name such as foo/bar/baz.page is loaded from the scratch dir (from /foo/bar/baz.class).

Overrides:
loadClass in class ClassLoader
Parameters:
name - a relative page path-name (relative to the page root directory), for example foo/bar/my.page or ./my.page
Throws:
ClassNotFoundException

main

public static void main(String[] args)
                 throws Exception
Throws:
Exception