On February 25th MW wrote to OpenSim developer mailing list about making Grid mode servers to set of plugins and modules. Since that a lot has happened: features have been converted to modules, grid and user server converted to plugins etc. In this post I’m going to explain what it currenty does and what it can do.
Before going to details a couple of explanations:
Plugin = Mono.Addins style Application plugin, see: How to create a dynamic plugin
Module = IRegionModule style dynamic plugin, see: IRegionModule
Current branch (revision 8975) has already User server and Grid server converted to plugins which can be loaded to same process. Also features of both these two servers have been converted to modules and User server plugin can load them dynamically. After a talk with MW aobut the module loading we have decided that module loading should be in its own plugin since all pluings might need the feature.
After that I have written a patch to OpenSim mantis, which implements this ModuleLoaderPlugin and allows dynamic module loading of grid modules.
“So what good is this?”, someone might ask. This allows to create separate modules for user server, grid server and maybe to other grid servers later on. One could for example create a module which checks the version information of the client. Or create a new login protocol. Possibilities are endless.