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

  1. Ask for access to https://gitlab.pricefx.eu/platform/integration-manager repository. You need the Developer rights there.

  2. 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

  3. Create your component in the integration-components-library module. To do that, follow the existing components.

  4. Create unit tests in the integration-components-library/src/test/groovy package. There is 90% code coverage required for the component.

  5. Once done, submit a merge request to the develop branch and assign @Michal Štěpán as the reviewer.

  6. 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