In a heterogeneous project setup, it is often the case that not every developer in the team has the same knowledge. Especially when it comes to knowledge about a platform. In the Panorama project (https://panorama-research.org/) we faced that issue when people tried to contribute to an Eclipse based application, without knowing about the Eclipse Platform. To get around such a knowledge gap and to help developers to focus on their strengths, rather than dealing with platform issues, we developed the "Eclipse Extended Contribution Pattern". In general this is an additional layer to support contributing functionality in a specific area of the application, without the need to know how the contribution is working in detail. This way developers with knowledge about the Eclipse Platform provide such a contribution layer. Developers without the detailed knowledge are then able to implement functionality in simple classes, keeping the platform details away.
Technically that layer combines the Eclipse 4 injection mechanism with OSGi Declarative Services.
In this talk I want to describe the Eclipse Extended Contribution Pattern and show concrete examples out of the APP4MC Platform project, where we introduced the pattern to:
- Contribute model visualizations
- Contribute model processing actions
- Contribute model element creation actions
At the end of the talk developers should understand the capabalities they have when using the Eclipse 4 Injection in combination with the OSGi DS Injection to improve the ways to contribute functionality to an existing application.
A detailed blog post about the topic can be found here:
http://blog.vogella.com/2021/11/16/eclipse-extended-contribution-pattern/