[Opensim-dev] Scope and Purpose of IApplicationPlugins and IRegionModules

Justin Clark-Casey jjustincc at googlemail.com
Thu Jul 3 10:20:02 UTC 2008


Ryan McDougall wrote:
> In my poking about the loading code to get an idea of the scale of the
> problem. I asked before about I*Plugin v. I(Region)Module, but I don't
> think there was much of a clear answer...
> 
> The reason I am asking again is that I noticed:
> 
> 1. That a Scene takes a (Region)ModuleLoader as an argument to its
> constructor. It doesn't appear to use this reference at all. 
> 
> Is there a Scene that needs to load its own RegionModules? Or is this an
> example of bit-rotted code or inappropriate abstraction/coupling?
> 
> 2. That LoadRegionsPlugin (an IApplicationPlugin) uses its reference to
> (Region)ModuleLoader (through OpenSimBase) to load RegionModules. 
> 
> Without knowing the semantic difference between a Plugin and Module, the
> LoadRegionsPlugin looks a bit awkward. It appears as if its only purpose
> is to choose between RegionLoaderFileSystem and RegionLoaderWebServer,
> then load them within a plugin...

I wrote an overview post at 
http://justincc.wordpress.com/2008/05/08/opensim-tech-basics-my-god-its-full-of-modules/
about the different modular systems we have/had, though this does 
contain information which is a little 'reverse engineered' too.  My 
assumption was the plugins denoted application wide code that spans 
regions (region information loading, load balancing, etc) , whilst 
modules contained code specific to a region (chat, terrain, trees, etc.).

It feels intuitively a good idea to have application plugins and region 
modules (the terminology *is* a little confusing) separate all the way 
up to the user level.  For instance, one could conceivably run different 
region modules on different regions, while an application plugin will 
always apply to the whole server.  One could dynamically load and unload 
some region modules, but with whole application plugins this could be 
inappropriate (though maybe that it possible there as well...).

However, this could be a mistaken intuition, on really digging into the 
code another conclusion may well be viable.

> 
> Perhaps it might be more appropriate to make that selection in
> OpenSimBase in order to keep all loading in one place? 
> 
> There are many ways I could do that, but it would take understanding the
> purpose of the current and future design in order to make my plugin
> loader a true solution that accommodates all use-cases.
> 
> Can we replace IRegionModules with IRegionPlugins and have PluginLoader
> load them all?
> 
> Cheers,
> 
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
> 


-- 
justincc
Justin Clark-Casey
http://justincc.wordpress.com



More information about the Opensim-dev mailing list