How to Contribute a Component to IntegrationManager (Components Library)
Components library repository will be discontinued with IntegrationManager 6.0.0 and no new components will be added. Instead, components are now directly contributed into IntegrationManager.
Â
Introduction
When integrations are developed, custom Groovy classes (processors, converters, filters, DTOs, etc.) are often created to fulfill the customer's requirements. Over time, many classes are created, but often not maintained, and such classes are copied over to other integrations. All these interactions increase the technical debt of integrations and raise the risk of introducing software bugs. As a solution, the idea of a components library was proposed.
Why You Should Contribute
The most common reasons are:
To reduce the potential of introducing bugs
To stop copying classes over integrations
To ensure classes are well-tested
To handle potential breaking changes between versions gracefully
How to Verify Class Suitability for Components Library
Answer these questions:
Is it too specific to your problem? If so, consider parameterizing it.
Does it use public APIs? Using internal APIs can cause more issues when upgrading.
Does it make sense to share it with other integrations?
How to Contribute
Ask for access to https://gitlab.pricefx.eu/platform/integration-manager repository. You need the Developer rights there.
Once you check out the repository from the develop branch, create a new feature branch, named by the Jira ticket (or component, if there is no ticket). Example:
feature/PFIMCORE-2099
Create your component in the
integration-components-library
module. To do that, follow the existing components.Create unit tests in the
integration-components-library/src/test/groovy
package. There is 90% code coverage required for the component.Once done, submit a merge request to the develop branch and assign @Michal Štěpán as the reviewer.
Merge the merge request when you get an approval.
When the merge request is merged, you can expect the class to be available in the next release.
Contributing components is not suitable in the development phase of the integration because of the slow feedback loop - you will not be able to use the component until the next IM release. For development phase, refer to https://pricefx.atlassian.net/wiki/spaces/PM/pages/5271728435 documentation.
IntegrationManager version 5.8.0