Martin,

This should be very helpful to Larry and others. I will take a close look at
the Javadoc and source code for the Extension and Registry classes in the
next couple of days.

Thanks for the great explanation.

The Sunburned Surveyor

On 5/9/07, Martin Davis <[EMAIL PROTECTED]> wrote:

In response to SS's puzzlement about the Extension concept, here's the
rationale:

Originally JUMP just had the concept of plugins, but this quickly turned
out to be limiting.  Many JUMP add-ons (to use a neutral term) comprise
a whole collection of inter-operating plugins.  They may also contain
other things, such as objects or classes which need to be added to the
Registry (more on this later).    Also, while plugins can self-install,
sometimes it's more convenient to have another piece of code manage
their installation (note: just like as the JUMPConfiguration class!)

A JUMP Extension was intended to be a way of managing a whole collection
of  plugins and associate objects.  It provides a single place where the
developer can do all the various house-keeping tasks needed to install &
configure a large add-on.  The extension class "gets control" during the
load, and gets full access to the JUMP core.

An extension also provides a way of managing a set of plugins which are
related.  The extension has a version number and a name.  If JUMP
allowed you to unload things, it would be extensions which were unloaded.

Hopefully that clears things up, and convinces people that Extensions
really are a necessary and fundamental JUMP concept.

As for the Registry, I'm not sure if people really grok what this is
for.  There are more and more things in JUMP which aren't plugins, but
which need to be installed, managed, discovered and used by plugins
which actually do work.  These are things like I/O drivers, Datastore
drivers, Decorators, Geometry Functions, etc etc. The Registry was
developed as a central place where these things could be managed. The
Registry formalizes and provides a standard pattern for doing this.  It
of course can have new Categories of objects added to it (by an
Extension, naturally).

We really should have spent a lot more time documenting and promoting
these subtleties of the Workbench Framework, but as usual other
priorities got in the way. So much to document, so little time... Maybe
this can make its way onto the wiki...

--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to