IntegrationManager 3.0.0

This document summarizes major improvements and fixes introduced in the Pricefx IntegrationManager release version.

Release dateMar 29, 2022

In this section:

Migration Steps

pricefx-client Updated

  • Pricefx client, as a dependency of IM, has been been upgraded to version 2.0.0 due to the necessary upgrade of Swagger-codegen library and other related libraries.

For that reason, all generated classes in the Pricefx client are placed into the package net.pricefx.integration.api instead of io.swagger.client.

If you use these classes directly, please check whether you use the right import net.pricefx.integration.api.

pricefx-api Method Names Changed

  • Pricefx Swagger definiton (https://shared-qa.qa1.pricefx.com/pricefx/system/api) was changed and this translated to lot of changes in method names in this API which transfers to IM directly. If you use bean methods to call certain Pricefx API and your code does not compile, you need to update the API method names. For example:
    • Instead of 

       priceFxClient.getDatamartApi().massedit(...)

      use

       priceFxClient.getDatamartApi().datamartMasseditTypeid(...)
    • Instead of 

      FcResponse response = priceFxClient.getDatamartApi().getfcs("DMDS", fetchRequest);
      var dmdsTypedId = response.getResponse().getData().get(0).getTypedId();

      use

      FcResponse response = priceFxClient.getDatamartApi().getfcs("DMDS", fetchRequest);
      var dmdsTypedId = response.getFcResponseResponse().getFcResponseContentData().get(0).getTypedId()


Package Changes

  • Several classes have changed their location:

    Class nameOld packageNew package
    Mappernet.pricefx.integration.mappernet.pricefx.integration.api.mapper
    Converternet.pricefx.integration.mapper.converternet.pricefx.integration.api.converter
    ConverterExceptionnet.pricefx.integration.mapper.converternet.pricefx.integration.api.converter
    ConverterExpressionnet.pricefx.integration.mapper.converternet.pricefx.integration.api.converter

    If you use such classes in camel-context.xml, you need to change the package.

PricefxClient Connection Rewritten

  • net.pricefx.integration.api.client.PriceFxClient class has been migrated into net.pricefx.integration.component.rest.domain.connection.PriceFxConnection.
  • This change was necessary to separate circular dependency in Maven projects. The new solution includes the original client into the new connection.
  • Migration guide:
    • Manual instances' original connection:

      <bean id="my-pricefx" class="net.pricefx.integration.api.client.PriceFxClient">
         <property name="username" value="aaa"/>
         <property name="password" value="aaa"/>
         <property name="partition" value="aaa"/>
         <property name="url" value="https://qa.pricefx.com/pricefx/"/>
      </bean>
    • New connection definition:

      <bean id="my-pricefx" class="net.pricefx.integration.component.rest.domain.connection.PriceFxConnection">
         <property name="username" value="aaa"/>
         <property name="password" value="aaa"/>
         <property name="partition" value="aaa"/>
         <property name="url" value="https://qa.pricefx.com/pricefx/"/>
      </bean>
  • Provisioned instances migration:
    • Before you migrate to 3.0.0, you need to migrate all your PriceFxClient connections.
      • Remove old connections of the type pricefx-client.
      • Create new connections of the type pricefx-client with properties from the previous connection.
  • Please note that the connection provided by IM (via properties) is now also of the new type. If you reference it manually in camel-context.xml, you might need to use the property client.

Improvements

New Feature DescriptionID
pfx-api documentation has been extended with the 'Applicable to method' column.PFIMCORE-945
There is a new job which informs about stuck events via email.
Default values for properties are:
  • integration.events.check-stuck-processing.enabled = true
  • integration.events.check-stuck-processing.scheduled-ms = 7 200 000 (2h)
  • integration.events.check-stuck-processing.timeout-duration = 24
  • integration.events.check-stuck-processing.timeout-unit = h
PFIMCORE-961
Created endpoint for validation of objects. Added validation to deploy of objects via REST API or httpclient.PFIMCORE-1003
Created a new 'im-commons' library with utils from all IM microservices.PFIMCORE-1004
There are httpClient methods for retrieval of extendend info for objects (routes, filters, connections, ...) - extendedInfo. The endpoint returns data from IM joined with Git data (content, revision, commitSha, etc.).PFIMCORE-1005
Libraries such as Jersey, Apache HTTP Client etc. have been upgraded in the Pricefx client project.PFIMCORE-1006
IM modules have been updated in order to use the new Pricefx client.PFIMCORE-1007
Communication between Pricefx client and partition has been added for debug mode to the Pricefx client.PFIMCORE-1014
Maven circular dependency has been removed. Created new library, 'im-commons' with standard utils. Removed 'integration-manager-common' module. Added 'integration-manager-api' module. Several APIs have changed their package and also several internal classes have been moved. Please read the migration steps.PFIMCORE-1017

Fixed Issues

Bug DescriptionID
Pricefx client has been updated to version 2.0.0 in which the problem with OOM was solved.PFIMCORE-946
pfx-api:import cannot read Excel CSV.PFIMCORE-980
It is not possible to store an object with special characters in the name.PFIMCORE-1001
Cannot start IM when restdsl is used.PFIMCORE-1011

IntegrationManager version 5.8.0