Dynamic Plugin Support

Updated January 5, 2005
Kimberly Horne

Goals

There are two goals for 3.1 with regard to dynamic plugin support. The first goal is to ensure that all extension points provided by the Workbench respect the dynamic plugin loading and unloading provided by the Runtime layers. The second goal is to provide a mechanism and guidelines that other extension point providers can use to ensure that their own points respect dynamic plugin loading.

How To

TBD

Current Workbench Support

For each extension point, we describe two levels of support. The first is registry support and the second is effective support. The first implies that our internal cache of the extension point (if there is one) is dynamic aware. The second implies the workbench as a whole is capable of responding to changes to the given extension point. Ie: if a perspective that is currently opened is removed then the perspective is closed.

Extension Point Registry
Addition
Effective
Addition
Registry
Removal
Effective
Removal
Notes
Workbench
actionSetPartAssociations        
actionSets       This needs to be verified.
activities  
commands This needs to be verified.
contexts This needs to be verified.
decorators        
editorActions          
editors  
elementFactories This one is interesting. The factories are dynamic (the registry is parsed for every request) and we arne't caching them in our code. However, we're only considering these factories on startup. If a factory comes into existance after startup should we make some effort to restore the workbench state again?
encodings          
exportWizards This needs to be verified.
helpSupport          
importWizards This needs to be verified.
intro  
newWizards  
perspectiveExtensions        
perspective  
popupMenus  
preferencePages      
presentationFactories   When a plugin that contributes a presentation goes away I'm not sure what we should do. We shouldn't just pick an arbitrary presentation to replace it with. Even if we do, we cant effectivly change presentations while the workbench is running. Perhaps we should prompt for a restart in this case?
propertyPages      
startup N/A N/A When startup extensions are added the earlyStartup method is called. Nothing occurs on removal.
systemSummarySections          
themes      
viewActions          
views Removal only hides views in visible perspectives. Fully implementing removal will require Bug 57841 to be closed.
workingSets      
IDE
markerHelp          
markerImageProviders          
markerResolution          
projectNatureImages          
resourceFilters          

Legend:
Finished: Underway: