Example:

Diva created a world map module, but the one in the OpenSimulator
distribution wouldn't let Diva's module run so she had to create a
configuration flag to turn the module in the OpenSimulator
distribution off.   Now, there's a complicated configuration option
for the world map module where you have to type out the object
namespace.

The groups module in OpenSimulator's distribution is a stub.   We do
not intend people to use it out of the box.   Therefore it makes sense
to have an implicit way to ensure that it doesn't run when there is a
replacement loaded.

Melanie doesn't think the 'replaceable modules' architecture is
maintainable and so she proposed this idea to solve the 3 goals I had
for it;

1. Explicitly declare opensim core developer's intentions for the
module to be replaceable and that we intend on users replacing the
stub with a module that is more full featured

2. Be implicit so no configuration files or options need to be managed
by the end user.   This makes packaging binaries easier.  You tell the
user to download a dll, and put it in the bin folder.   No need to
modify the opensim.ini or the config-include folder.   This is a step
in the direction of a console module downloader and loader.

3. Be resource friendly.   Currently even modules that are not running
are loaded in memory.   The objects are.   They may not be using much
memory..  but they're still there.

My method of reaching those goals was to create stub projects in
separate dlls where the dll contains only the module.  The reason for
it being a single module in the dll is that it can be overwritten with
a dll provided by someone else.   I called them the
ReplaceableModules.    Melanie doesn't think this is maintainable
though with the number of modules that are stuck in various 'catch
all' dlls.    I'm open to other solutions as long as they accomplish
the 3 goals :).    Melanie's solution does accomplish those three
goals.


Regards

Teravus



On Fri, Jul 10, 2009 at 6:28 PM, Kyle Hamilton<aerow...@gmail.com> wrote:
> money.
>
> -Kyle H
>
> On Fri, Jul 10, 2009 at 2:09 PM, Justin
> Clark-Casey<jjusti...@googlemail.com> wrote:
>> Melanie wrote:
>>> The intent of this change is to let a module indicate that it wishes
>>> it's load to be deferred until all modules have been scanned and
>>> initialized, and to indicate that it wishes to ot be initialized if
>>> another module has already registered it's interface.
>>>
>>> This will allow automatically disabling modules the developer has
>>> marked as "stub" modules without full functionality, so that
>>> replacement 3rd party modules can simply be dropped into the binary
>>> distribution and get picked up and run instead of that stub.
>>
>> Could you give an example of what kind of module we'd be talking about here? 
>>  Wouldn't this apply to all modules anyway
>> (since in principle it should be possible to replace anything)?
>>
>> --
>> justincc
>> Justin Clark-Casey
>> http://justincc.wordpress.com
>> _______________________________________________
>> Opensim-dev mailing list
>> Opensim-dev@lists.berlios.de
>> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev@lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>
_______________________________________________
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Reply via email to