Spring Application Advisor 1.6.x: Missing OSS coordinate mappings for Jackson dependencies
search cancel

Spring Application Advisor 1.6.x: Missing OSS coordinate mappings for Jackson dependencies

book

Article ID: 437828

calendar_today

Updated On:

Products

VMware Tanzu Platform Spring VMware Tanzu Spring Runtime

Issue/Introduction

After upgrading to Spring Application Advisor 1.6.x, advisor upgrade-plan get may report that no upgrade plan is available, even though the application is expected to have a valid upgrade path.

In affected cases, the command output lists multiple transitive OSS dependencies as blockers and indicates that no upgrade mappings are configured for them. Common examples include org.testcontainers:testcontainers, org.testcontainers:junit-jupiter, org.testcontainers:mysql, and com.github.docker-java:docker-java-api. This behavior is related to Jackson mappings added in Spring Application Advisor 1.6.x. Once those mappings are available, Advisor can identify additional upgrade paths through OSS dependencies that use Jackson. If mappings for those intermediate OSS dependencies are not available, Advisor surfaces them as blocking dependencies and does not generate a standard upgrade plan.

Symptoms
Running the following command may produce output similar to the following:

$ advisor upgrade-plan get
.
.
.

The projects ["jackson-annotations", "junit", "jackson", "spring-boot", ...] could not be included in the Upgrade Plan because they are used as transitive dependencies for other projects, and no upgrades are configured for them.
Please request your administrator to configure the projects of the following dependencies:

- <OSS dependency 1>

- <OSS dependency 2>

- <OSS dependency 3>

- <E.g: org.testcontainers:testcontainers>

No upgrade plans available - your project seems to be up to date.

The output may also show that the blocking dependencies use Jackson-related artifacts, for example:

uses:

 - jackson-annotations

 

Environment

 Spring Application Advisor 1.6.x

Cause

Spring Application Advisor relies on upgrade mappings to build a safe and aligned upgrade plan.

In Spring Application Advisor 1.6.x, mappings were added for Jackson. As a result, Advisor can now detect additional upgrade paths involving Jackson-related dependencies. When those paths pass through intermediate OSS dependencies that do not yet have mappings configured, Advisor identifies those dependencies as blockers.

This can cause more dependencies to appear in the output than in earlier releases, even when the application source code has not changed. Those dependencies are surfaced because Advisor is now able to follow Jackson-related upgrade paths through them, but cannot complete the plan safely without mappings for the intermediate OSS components.

Resolution

Review the 'advisor upgrade-plan get' output and identify the dependencies listed under:

Please request your administrator to configure the projects of the following dependencies:

These are the OSS dependencies currently blocking upgrade-plan generation.

Submit the issue through the standard support or product process so mappings can be added for the listed dependencies.

Include the following information:

  • Spring Application Advisor version
  • Full 'advisor upgrade-plan get' output
  • Generated 'target/.advisor/build-config.json'

Workaround
As a workaround, force execution of the full upgrade plan, including intermediate dependencies:

advisor upgrade-plan get -f

This can allow Advisor to continue even when intermediate OSS dependencies surfaced through Jackson-related upgrade paths do not yet have mappings.

Use this workaround with caution. It is appropriate for evaluation and troubleshooting, but it does not replace adding the missing mappings for the blocking dependencies.