...
For the purposes of this document, a Geode component is any class/feature that, when created/started, adds to or changes the behavior of Geode, such as Cache, Region, or LuceneIndex. Currently, Geode components can be created and shutdown directly using things like CacheFactory in the case of Cache or RegionFactory in the case of Region. After the completion of the work proposed by the the ClassLoader Isolation RFC, the majority of Geode's sub-projects will be loaded as isolated modules. In this case, a module is a collection of one or more jar files that are loaded at runtime using a different ClassLoader than the rest of the system. Modules can access classes and resources from the system ClassLoader and other modules upon which they explicitly depend, but cannot be directly accessed from outside the module system; accessing classes from a module requires service loading. The below graphic shows the division between the system and the module ClassLoaders.
...
- createComponent - creates a component given a name and arguments
- destroyComponent - destroys a component given a name and some arguments
- getComponent - returns the created component given its name
- canCreateComponent - takes a ComponentIdentifier and determines whether or not the ComponentManagementService can create that type of component
The logic of creating a component using ComponentManagementService will be handled by the ManagementService proposed by the ClassLoader Isolation RFC. The basic flow for creating a component using ComponentManagementService will be as follows:
...