Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-dev] Extensibility of the application model

Hi all,

I have recently contributed a new way to extend the application model via fragment and processor that avoids the usage of the extension point. A model processor can be registered via DS, a model fragment can now be registered via a Manifest header.

Mickael and Tom have now mentioned on the ticket that the Manifest header solution for registering a fragment introduces a new way to extend the application model, which could be confusing for a user. Instead we should stick with one replacement for the extension points, which is the usage of DS.

The initial proposal was to have a service that simply provides the static information for registering the model fragment. In the review process this was changed to the Manifest header solution to follow the OSGi best practices as static information inside a bundle does not need to be provided by a service.

The goal of the new extension is to get rid of the extension points as I already mentioned. The nice side effect is that with this change it is even possible to handle dynamics, e.g. add/remove model elements like parts and menus on installing/uninstalling bundles. This actually works already for parts, but still needs some work for other stuff like menu contributions. But I need some support on the model side, as I am not that deeply familiar with this.

As there is now a discussion in the ticket whether to use DS only or keep the Manifest header, I would like to move the discussion to the mailing list. IMHO both ways have their advantages and disadvantages. Technically both ways are possible AFAICS. 

Please discuss and let me know which way to go. The Manifest header solution is currently in the code base (see ModelAssembler). The DS solution could be restored/implemented with also not too much work. I would really like to get the new extensibility in, but of course it should be a solution that the majority of the Platform committers share. We are not yet in the code freeze phase, so I would be able to change it if that is the decision.

For more details have a look at the Bugzilla entry and the patches in Gerrit.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=571866
https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/177574
https://git.eclipse.org/r/c/www.eclipse.org/eclipse/news/+/179290

Thanks and hope for a constructive discussion
Dirk

Back to the top