views:

170

answers:

3
+1  Q: 

Eclipse UI Plugins

Hi all,

In a custom Eclipse's product We are asking ourselves:

Should we create one single UI plugin for all the user interface matters or should we broke these matters in several plugins (for example, ui.views - ui.preferences - ui.properties etc ...)

It seems Eclipse's "official" products such as CDT, JDT ... only have one UI plugin and some third party plugins I am using have several ui plugins (Papyrus for example)

I know this is rather a subjective question but I would be interested to learn about the way you manage your UI stuff.

Manu

A: 

Ignoring anything specific to Eclipse, I would say from a product support perspective it makes much more sense to have a single plug-in. This has the following benefits:

  • Every customer has the same environment, so if someone contacts you with a problem you know what they have.
  • You have to test a single configuration. If you split your code into 3 plug-ins that's 7 different configurations you have to test.
  • In future you won't have to worry about which plug-in new functionality should be added to.
Dave Webb
Hi Dave,Thanks for you answer but it doesn't apply to Eclipse. Eclipse has an other concept on top of plugins called features. In both cases I have one feature for my product gathering all plugins (UI and core plugins) and in all case all my customers will have the same plugins installed. The question is just about the "number" of UI pluginsManu
Manuel Selva
+1  A: 

I'd create separate bundles (or plugins) for each independently usable component. So if I have e.g. a view that can be used without some other things, I'd put it in a bundle of its own. I find that this makes it easier to configure the feature, replace certain parts, provide custom combinations of components, handle dependencies, and such.

Fabian Steeg
+1  A: 

If your plugin does one thing (e.g. add a menu item to order pizza) it makes little sense to split it up, you're just introducing complexity. The modularity of your product is the key factor in deciding how to split the functions into plugins. Consider the functionality you're trying to deliver and whether there are any optional components or pieces that may be useful in isolation.

Take m2eclipse as an example, it has multiple UI plugins, but that is because they are functionally separate. The XML editor is certainly a useful UI addition, but users of the core function (dependency management) don't necessarily need it so it makes sense to bundle it separately and make it optional.

Rich Seller