PluginDistribution

From Protege Wiki
Revision as of 16:56, February 23, 2008 by JenniferVendetti (talk | contribs) (New page: <span style="font-weight:bold; font-size:18px;">Tips for packaging your plug-in for distribution</span> In Protege versions 2.1 and higher, each plug-in resides in a separate, uniquely n...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Tips for packaging your plug-in for distribution


In Protege versions 2.1 and higher, each plug-in resides in a separate, uniquely named subdirectory of the plugins directory and is loaded by a separate class loader. Prior to version 2.1, all plug-ins were placed at the same level in the plugins directory, which caused problems when plug-ins required incompatible versions of the same library. Thanks go to Ian Dickinson at HP Labs for originally suggesting the implementation technique for handling the "plug-in conflict" problem.


Below is a screen shot of the typical Protege directory structure:


Protege Plugins Directory.jpg


If you package your plug-in for distribution as a ZIP file, you need to have a "path" inside of the ZIP that corresponds to the directory name that you want your plug-in to use. Then, when a user unzips to the plugins directory, your JAR and other files will end up in the correct subdirectory.


It is essential that each plug-in be placed in a directory with a unique name. In order to ensure unique names, we suggest the scheme illustrated above of using a directory with an "inverted URL" that you "own" and a name for your plug-in. Typically, such a URL has been used as the package name for your plug-in.


Below is a screen shot of a Protege plug-in that has been packaged for distribution in ZIP format. Note the "Path" in the ZIP file, which allows a user to unzip the file to the correct subdirectory of the plugins directory.


Plugin ZIP Distribution.jpg