
Jpf provides a runtime engine that dynamically discovers and loads "plug-ins". a plug-in is a structured component that describes itself to jpf using a "manifest". jpf maintains a registry of available plug-ins and the functions they provide (via extension points and extensions).
one major goal of jpf is that the application (and its end-user) should not pay any memory or performance penalty for plug-ins that are installed, but not used. plug-ins are added to the registry at application start-up or while the application is running but they are not loaded until they are called.