Feature Proposals/PluginManager

This is the next evolution of http://opensimulator.org/wiki/IntegrationService

We are working to make the plugin management in integral part of the system that will allow us to maintain comparability with the structure have and still be able to use dynamic interaction with the modules.

Design
This code is in the connector_plugin branch in OpenSimulator's git source-code repository. Relevant files are


 * OpenSim.Framework.PluginManager - extends Mono.Addins.Setup.SetupService. Manages plugins and repositories.
 * OpenSim.Server.Base.IRobustConnector - in OpenSim.Server.Base.ServerUtils. Implemented by addins and called on load and unload.
 * OpenSim.Server.Base.PluginLoader.

Instructions
These are copied from http://lists.berlios.de/pipermail/opensim-dev/2012-October/011446.html Justincc 02:58, 10 November 2012 (UTC)

get the code: OpenSim repo - connector_plugin branch

Build the code as usual and run an instance of Robust on a convenient port. Note RegistryLocation and ConfigDirectory in the [Startup] section of your Robust.ini and set them appropriately.

see the commands with "help repository" and "help plugin"

I have setup an example repository that can be used for testing. Add it with...

repo add http://bluewallvirtual.com/plugins

Then, look for available plugins with...

plugin list available

Then, add a plugin...

plugin add 0

Then, you can enable the plugin to have it get the bootstrap ini...

plugin enable 0

At this point, the plugin will be disabled by configuration, so disable it in the console...

plugin disable 0

Now find your new configuration file and edit it for your needs. When you have finished editing your ini enable the plugin...

plugin enable 0

Now you should be able to use it. You can also see the meta data...

plugin info 0

You can check the state of your installed plugins...

plugin list installed

Your plugin will show: 0) [ ] ...

plugin disable 0 plugin list installed

Your plugin will show: 0) [X] ...

You can remove the plugin...

plugin remove 0

Source for the example plugins is at http://github.com/BlueWall Config file: http://bluewallvirtual.com/configs/SlipStream.Example.xml

To make a repository...


 * 1) Prepare a place to serve your configs and repository on your web server
 * 2) Edit the meta data and the ConfigURL property in SlipStreamConnector.cs
 * 3) Build your plugin in the addon-modules directory like a region module
 * 4) Pack the dll: mautil p bin/MyPlugin.dll
 * 5) Copy all packed files to a directory, then cd to that directory
 * 6) Build the repo: mautil rb ./
 * 7) Copy the directory contents to your repository on your web server
 * 8) Copy config xml to your config url on your web server

Clean your registry by deleting the directory pointed to in "RegistryLocation" in your Robust.ini. You're all set.

= References =


 * http://lists.berlios.de/pipermail/opensim-dev/2012-October/011446.html - e-mail thread for this updated proposal.
 * http://bluewallvirtual.com/plugins/ - example plugins repo.
 * https://github.com/BlueWall/SlipStream - example plugin.