Dynamic Plugin Support

Updated December 9, 2004
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          
propertyPages      
startup         TBD. What would the behaviour be in this case?
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: