Theseus Generic Plugin Engine

Extension Points

Extension points allow plugins to add points of extensibility to a plugin so that other plugins may contribute functionality to the plugin. Extension points are similar to events. With an event, interested parties register listeners. When the event is fired, listeners get notified and can do something with the event. Similarly yet more capable, extension points represent some bit of code the plugin will execute and make use of any plugins providing extensions to the extension point. While events generally are handled by listeners, plugins are not required to use extensions as if they are code. On the contrary, an extension point to a Help system that is made of HTML pages can require that each extension provide information on how to find a given html file, where it goes in the help system, and so forth. Not a bit of code for each extension plugin is ever executed. In fact, when used in this manner, plugins providing extensions don't even need a plugin lifecycle class. Keep in mind that as plugins are loaded, after each plugin is done having its plugin.xml descriptor parsed, any extensions it provides are attempted to resolve to any registered extension points. But, at the time they resolve, each extension plugin owner does NOT get created. Because of this, a lifecycle class is not mandated.

Index   Back To Plugins   On To Extensions